我想要实现的是在浏览器,笔记应用程序或信使上点击URL时自动打开活动。
所以我有这种网址格式: http://testsite.com/code/AB1234
在AndroidManifest.xml中,我为Activity设置了Intent过滤器:
<activity android:name=".HomeActivity">
<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:host="testsite.com"
android:pathPrefix="/code"
android:scheme="http" />
</intent-filter>
</activity>
在HomeActivity中,只需从URL获取代码并在Toast上显示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
String code = getIntent().getData().getLastPathSegment();
Toast.makeText(this, code, Toast.LENGTH_LONG).show();
}
当我点击链接时,系统会在应用程序选择器上显示我的应用程序和浏览器应用程序。我知道这个URL也可以在浏览器中处理。我想知道如果可能的话,如何使我的意图过滤器具有优先权。
是否可以自动打开我的应用程序?如果是的话怎么做?我该如何更改我的意图过滤器?
答案 0 :(得分:0)
如果您可以控制链接,最简单的方法就是为您的应用设置唯一的方案。
<data android:host="testsite.com"
android:pathPrefix="/code"
android:scheme="myapp" />