我可以强制android将我的应用用作意图接收器吗?

时间:2019-06-28 07:09:11

标签: android android-intent intentfilter

所以我的应用几乎不依赖WebView。它几乎就像特定网站的浏览器一样,但是我解析所有HTML等。WebView包含指向网站不同部分的链接。我希望用户使用我的应用来显示它们(因为网站的移动版本很丑陋,这就是为什么我创建了一个显示一切都很好的客户端),但是Google chrome也可以做到这一点,并建议在浏览器中打开这些链接。当然,用户可以打开与我的应用程序的链接,然后点击“记住我的选择”,但这看起来并不好。我希望android至少在我的应用中发生这种情况时才打开与我的应用的链接。我使用意图过滤器来建议我的应用

<intent-filter android:label="@string/app_name">
    <action android:name="android.intent.action.VIEW" />

       <category android:name="android.intent.category.DEFAULT" />
       <category android:name="android.intent.category.BROWSABLE" />
       <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
          <data
              android:host="mysite.com"
              android:pathPrefix="/prefix/"
              android:scheme="https" />
       <!-- note that the leading "/" is required for pathPrefix -->
</intent-filter>

我可以以某种方式强制android使用我的应用程序将其打开吗?还是告诉用户选择我的应用,并要求他在应用打开时“记住我的选择”?由于它通常不是应用程序的行为,因此用户可能会感到困惑,因为他可以使用Google chrome在网站客户端中打开其他内容。

1 个答案:

答案 0 :(得分:0)

如你所说
例如,他点击了我客户中的某项
我认为您可以使用action_view在intent中添加packageName。例如

Uri uri = Uri.parse("******");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
intent.setPackage("ur app's pkgname");
startActivity(intent);