To enable other apps to jump to a certain activity of this app and pass parameters, you can use Uri to achieve it implicitly. Methods as below:
1. Add the intent-filter tag in AndroidManifest.xml:
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<!-- 在data里设置了scheme和host,则该Activity可以接收和处理类似于"data://main/XXX"的链接 -->
<data
android:host="main"
android:scheme="data" />
</intent-filter>
</activity>
2. Add the logic of parsing parameters in the onCreate of the Activity class:
Uri uri = getIntent().getData();
if (uri != null) {
// 通过隐式方式跳转而来
String id = uri.getQueryParameter("id");
String name = uri.getQueryParameter("name");
// 逻辑处理
}
3. Logic when jumping in other apps:
Uri uri = Uri.parse("data://main/?id=id1&name=name1");
Intent intent = new Intent(null, uri);
startActivity(intent);