在外部唤醒Android App

有三种方式 Intent 、 URL Scheme 、 AppLinks 可以唤醒Android App。 部分Android手机可能没有GMS服务,本文不讨论AppLinks方式。 配置 AndroidManifest.xml 在AndroidManifest.xml中配置以下信息,主要是暴露唤醒方式和scheme。 本文假设包名为 com.test.myapp 、自定义scheme为 testscheme、被唤醒的Activity为TestEntryActivity <?xml version="1.0" encoding="utf-8"?> <manifest > <application <!-- 通过 INTENT URL SCHEME 唤醒自己--> <activity android:name="com.test.myapp.TestEntryActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:exported="true" android:taskAffinity="com.test.myapp" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="testscheme" /> </intent-filter> </activity> </application> </manifest> 创建 Activity 在包名com.test.myapp创建TestEntryActivity代码文件,代码内容如下: public class TestEntryActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 全新唤醒 Intent intent = getIntent(); Uri uri = intent.getData(); handleUri(uri,true); finish(); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); // 后台切前台 Uri uri = intent.getData(); handleUri(uri,false); finish(); } private void handleUri(@NonNull Uri uri,boolean isColdLanuch) { if (isColdLanuch) { // 冷启动,应先运行App初始化业务逻辑,如Splash、检查账号权限、SDK初始化等 // 待App业务初始化完成后,再处理外部唤醒事件 return; } // 根据uri内容分发到对应的页面或者模块 } } 外部唤醒 以浏览器为例: ...

August 21, 2026 · 1 min · holdsky