0
我正在嘗試使用以下鏈接來下載.XM文件。Android Browser Intent Filter will not Work
http://api.modarchive.org/downloads.php?moduleid=50479#ngs_cvrg.xm
這裏是我的清單片段:
<application
<activity
...
<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" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/octet-stream" />
<data android:host="*" />
<data android:pathPattern=".*\\.xm" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/mytestapp" />
<data android:host="*" />
<data android:pathPattern=".*\\.xm" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:pathPattern=".*\\.xm" />
<data android:host="*" />
<data android:mimeType="text/plain"/>
</intent-filter>
<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:mimeType="*/*" />
<data android:pathPattern=".*\\.xm" />
<data android:host="*" />
</intent-filter>
</activity>
下面是我的代碼片段未被稱爲:
@Override
protected void onCreate(Bundle savedInstanceState)
{
CheckForBrowserActivation();
}
public void CheckForBrowserActivation()
{
Intent intent = getIntent();
String sData = intent.getDataString();
ContextActivity.LogDebugf("Intent [%s] Data[%s]\n", intent.getAction(), sData);
if(Intent.ACTION_VIEW.equals(intent.getAction()))
{
ContextActivity.LogDebugf("BROWSER, ACTION_VIEW\n");
有人可以告訴我爲什麼意向過濾器不適用於此鏈接?
我已經成功了意圖過濾器的相同的代碼和類型M3U播放列表等工作
UPDATE:
我想現在接受任何應用程序/八位字節流的鏈接和我做不到讓我的應用程序接收這些鏈接的意圖。我已經嘗試了「http」和「file」方案,但都沒有工作。我已經刪除了所有的意圖過濾器,所以我現在只有一個(見下文)。爲什麼這不工作?
<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:host="*" />
<data android:mimeType="application/octet-stream" />
</intent-filter>
謝謝。這是否意味着我應該過濾我的應用程序中的所有.php URL,然後在完整的URL中查找.xm? – SparkyNZ
@ SparkyNZ:那麼,對於'http'和'https'方案來說,這是可行的。但是,用戶可能會感到困惑,試圖確定您聲稱爲什麼要處理所有PHP頁面。不幸的是,您的測試網址不會爲此請求提供不同的MIME類型,這基本上意味着您的所有選項都很糟糕。 – CommonsWare
當然,必須有另一種截取.XM文件下載的方法嗎?這對於iOS來說非常簡單。在iPhone上,我註冊了XM文件類型,並且此鏈接觸發了一個openURL方法。我只是想在Android上獲得相同的結果。 – SparkyNZ