意圖過濾我想註冊我的Android應用程序爲iCal的URL的處理程序。爲此,我在我的清單中爲webcal://
僞協議和HTTP URL使用text/calendar
MIME類型設置了意向過濾器(請參見下文)。爲iCal的網址
這在模擬器中工作完全正常,但在真實設備上我有問題。該webcal://
過濾器的作品,但text/calendar
一個沒有。相反,瀏覽器將純文本顯示爲ical文件,而不是將URL傳遞給我的應用程序。
我檢查了瀏覽器未配置爲iCal中的默認處理程序(在設置 - >應用程序 - >瀏覽器),我問了其他幾個人,如果他們能複製在自己的手機的問題。所有結果都一樣。
什麼是文本/日曆網址註冊的正確方法?
<?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>
更新:原來上面在Android 1.6模擬器工作正常,但不能在2.3.3模擬器它顯示了相同的行爲,我的手機上。這可能是Android的錯誤嗎?
是否有可能服務器沒有準確地發送沿着正確的內容類型?如果不是,瀏覽器可能會將其解釋爲純文本。您也可以使用路徑意圖過濾器運行正則表達式* .ical –
是的,服務器發送正確的MIME類型。以下是我用於測試的URL:http://re-publica.de/11/rp2011.ics –
您是否嘗試過使用* .ics路徑參數方法的另一個過濾器?如果這不起作用,您可能會將默認應用程序設置爲瀏覽器,以便它不再提示? –