7

システム内の Web ブラウザのリストをプログラムで取得するにはどうすればよいですか?

更新: そのアプリケーションのどのマニフェストファイルに属性android:scheme="http"またはandroid:scheme="https". システム throw ですべてのアプリケーションのリストを取得する方法を知っていますgetPackageManager().getInstalledPackages( 0);。この属性を取得する方法がわかりません。

4

2 に答える 2

17

たとえば、次のようActivitiesに、システム内で特定の処理できるものを確認できIntentます。

    PackageManager packageManager = context.getPackageManager();
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://www.google.com"));
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
            PackageManager.MATCH_DEFAULT_ONLY);
            for (ResolveInfo info : list) {
                String name = info.name;
            }

これがあなたのために働くことを願っています。

于 2013-02-27T13:16:21.763 に答える
2

パッケージ マネージャーをインテントと共に使用して、ブラウザーを開いて、デバイス内のすべてのブラウザーのリストを取得できます。アプリのパッケージ名を取得するには、 を使用できますit.activityInfo.packageName。ここitで、 はリスト項目です。

val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.aurl.com"))
val browsersList = packageManager.queryIntentActivities(browserIntent, 
                   PackageManager.MATCH_ALL)
browsersList.forEach {
    val packageName = it.activityInfo.packageName
}
于 2020-03-25T13:52:19.557 に答える