Android 浏览器 Intent 过滤器不起作用
Android Browser Intent Filter Won't Work
我正在尝试使用以下 link.
下载 .XM 文件
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" );
有人可以告诉我为什么 Intent 过滤器对此不起作用吗 link?
我已经成功地将相同的代码和类型的意图过滤器用于 m3u 播放列表等
更新:
我现在正在尝试接收任何 application/octet-stream link,但我无法让我的应用程序接收这些带有 link 的意图。我已经尝试了 "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>
http://api.modarchive.org/downloads.php?moduleid=50479#ngs_cvrg.xm
这个URL的文件扩展名是.php
。
<data android:pathPattern=".*\.xm" />
这个pathPattern
的文件扩展名是.xm
。这与您的 URL.
不符
我正在尝试使用以下 link.
下载 .XM 文件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" );
有人可以告诉我为什么 Intent 过滤器对此不起作用吗 link?
我已经成功地将相同的代码和类型的意图过滤器用于 m3u 播放列表等
更新:
我现在正在尝试接收任何 application/octet-stream link,但我无法让我的应用程序接收这些带有 link 的意图。我已经尝试了 "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>
http://api.modarchive.org/downloads.php?moduleid=50479#ngs_cvrg.xm
这个URL的文件扩展名是.php
。
<data android:pathPattern=".*\.xm" />
这个pathPattern
的文件扩展名是.xm
。这与您的 URL.