And*_*ohr 7 android android-manifest android-intent
我正在尝试将我的Android应用注册为iCal网址的处理程序.为此,我在我的Manifest中为webcal://伪协议和使用text/calendarMIME类型的HTTP URL 设置了intent过滤器(见下文).
这在模拟器中工作得非常好,但在真实设备上我遇到了问题.该webcal://过滤器的工作原理,但text/calendar一个没有.相反,浏览器将ical文件显示为纯文本,而不是将URL传递给我的应用程序.
我检查了浏览器没有配置为ical的默认处理程序(在设置 - >应用程序 - >浏览器中),我问了一些其他人是否可以在他们的手机上重现问题.都具有相同的结果.
注册文本/日历URL的正确方法是什么?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.splitbrain.giraffe"
android:versionName="0.31" android:versionCode="4">
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar">
<activity android:label="@string/app_name" android:name="MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<category android:name="android.intent.category.BROWSABLE"></category>
<action android:name="android.intent.action.VIEW"></action>
<data android:mimeType="text/calendar" android:scheme="http"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
<intent-filter>
<category android:name="android.intent.category.BROWSABLE"></category>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="webcal"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
<activity android:name="OptionsActivity"></activity>
<activity android:name="DetailActivity"></activity>
<activity android:name="AboutActivity"></activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
更新:在Android 1.6模拟器中,上述工作正常,但在2.3.3模拟器上没有显示与我手机上相同的行为.这可能是Android中的一个错误吗?
只需使用 DEFAULT 类别,BROWSABLE 类别可能会导致问题。
添加.*.ics路径模式以捕获服务器指定错误 MIME 类型的任何文件
将所有匹配的数据放入同一个过滤器中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.splitbrain.giraffe"
android:versionName="0.31" android:versionCode="4">
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar">
<activity android:label="@string/app_name" android:name="MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/calendar" />
<data android:scheme="webcal" />
<data android:pathPattern=".*.ics" />
</intent-filter>
</activity>
<activity android:name="OptionsActivity"></activity>
<activity android:name="DetailActivity"></activity>
<activity android:name="AboutActivity"></activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1782 次 |
| 最近记录: |