4

Android アプリの URL スキームを登録しました (myapp://host としましょう)。

他のアプリでは、Intent を使用してそのアプリを起動できますが、起動せずに最初のアプリがインストールされているかどうかを確認するにはどうすればよいですか?

iOSでは、次のように簡単です

[[UIApplication sharedApplication] canOpenUrl:@"myapp://"];

Androidに同等のものはありますか?(簡単な方法)

URL スキームを使用して確認したいと思います。パッケージ名を使用して確認する方法は知っていますが、PackageInfo から URL スキームを取得する方法もわかりません... (より難しい方法)

    PackageManager pm = m_cContext.getPackageManager();
    boolean installed = false;
    try {
        @SuppressWarnings("unused")
        PackageInfo pInfo = pm.getPackageInfo(szPackageName, PackageManager.GET_ACTIVITIES);
        installed = true;
    } 
    catch (PackageManager.NameNotFoundException e) {
        installed = false;
    }

前もって感謝します!

注: これは、iOS 向けの同じ質問の Android バージョンです: アプリが iPhone にインストールされているかどうかをプログラムで検出する

4

2 に答える 2

3

アプリの起動方法がわかっている場合は、アプリを起動するインテントを作成してから、queryIntentActivities を呼び出します。

 Intent intent = //your app launching intent goes here
 PackageManager packageManager = mContext.getPackageManager();
 List<ResolveInfo> resolvedActivities = packageManager.queryIntentActivities(intent,0);
 if(resolvedActivities.size() >0)
     \\present
于 2012-09-05T03:08:19.970 に答える