システム内の Web ブラウザのリストをプログラムで取得するにはどうすればよいですか?
更新: そのアプリケーションのどのマニフェストファイルに属性android:scheme="http"
またはandroid:scheme="https"
. システム throw ですべてのアプリケーションのリストを取得する方法を知っていますgetPackageManager().getInstalledPackages( 0);
。この属性を取得する方法がわかりません。
たとえば、次のよう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;
}
これがあなたのために働くことを願っています。
パッケージ マネージャーをインテントと共に使用して、ブラウザーを開いて、デバイス内のすべてのブラウザーのリストを取得できます。アプリのパッケージ名を取得するには、 を使用できます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
}