我有一个偏好布局,如下所示:
<Preference
android:title="@string/imagesPreferenceTitle"
android:icon="@drawable/ic_action_images"
android:key="@string/imagesPrefs">
<intent
android:action="android.intent.action.VIEW"
android:data="content://ex.my-app.com/preferences/images">
</intent>
单击此按钮时,MainActivity应该处理此意图。这是AndroidManifest.xml
声明:
<activity
android:name=".app.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Activity"
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="content"
android:host="ex.my-app.com"
android:pathPrefix="/preferences">
</data>
</data>
</intent-filter>
</activity>
在运行KitKat的Alcatel上进行测试,我弹出一个对话框,询问我是否应该使用浏览器或MyApp查看此内容。 在其他设备/操作系统版本上它是可以的 - MyApp总是处理它。
答案 0 :(得分:1)
嗯,大概该设备有一个名为“浏览器”的东西,可以处理ACTION_VIEW
content:
Uri
的{{1}}值,无论与Uri
相关联的MIME类型是什么。
如果您尝试仅匹配该活动,请删除android:action
,可能android:data
和use android:targetClass
and android:targetPackage
。 IOW,使用明确的Intent
,而不是隐式的Intent
。