我有一个Web服务,它使用自定义Mime类型提供配置文件。我想在用户点击链接时使用intent-filter启动我的活动。它适用于所有Android版本,但在4.2(API级别17)中它不起作用。 这是我的Manifest.xml
<activity android:name="activityName"
android:screenOrientation="nosensor"
android:theme="@style/Theme.Sherlock.NoActionBar"
android:exported="true">
<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="http" />
<data android:scheme="https" />
<data android:mimeType="application/vnd.xxx.yyy"/>
</intent-filter>
</activity>
有什么想法吗?
答案 0 :(得分:1)
解决,. 只需将android:launchMode =“singleTask”添加到清单中即可。对于android 4.2中的一些奇怪的原因,该标志是强制性的.....
答案 1 :(得分:0)
好吧,你的应用程序适用于4.2硬件(在Galaxy Nexus上测试)。它会短暂弹出浏览器(我在4.1 x86模拟器上没有注意到,但它可能太快了)。但是,然后控制权将传递给您的活动。
我的猜测是,在模拟器上实现的浏览器中存在导致问题的错误。
话虽如此,如果这真的适用于某种专有配置文件,我建议您在应用中处理下载。不要让人们点击TextView
- 超链接或WebView
,而是在您自己的应用中提供配置文件列表,然后使用HttpUrlConnection
(或HttpClient
下载它)你自己。