2016-10-01 5 views

答えて

0

BroadcastReceiverを登録して、パッケージイベントを受信する必要があります。以下のパッケージのみのリスニングイベントを参照してください。マニフェストで

とあなたのBroadcastReceiver:

public class PackageAddedReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context ctx, Intent intent) { 
     String packagename = intent.getData().getEncodedSchemeSpecificPart(); 
     Log.d(TAG, "Action: " + intent.getAction()); 
     Log.d(TAG, "The packagename: " + packagename); 
     //TODO check if the desired app is installed with the packagename 
    } 
} 
+0

多くのおかげで、それが正常に働いています。 – MobTech

0

ユーザーがPackageManagerクラスのインスタンスを取得し、あなたの他のアプリのパッケージ情報を取得することにより、特定のアプリが含まれている場合は、アプリを起動(またはいつでもあなたが必要)で確認することができます。

private boolean isPackageInstalled(String packagename, PackageManager packageManager) { 
    try { 
     packageManager.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES); 
     return true; 
    } catch (NameNotFoundException e) { 
     return false; 
    } 
} 

パッケージが見つからない場合、エラーが生成され、その理由をキャッチする必要があります。あなたのケースではfalseを返すので、ユーザーにはアプリがインストールされていないことがわかります。

この方法の使用は次のようになります。そのメソッドがtrueを返す

PackageManager packageManager = context.getPackageManager(); 
    boolean isInstalled = isPackageInstalled("com.your.otherapp.package.name", packageManager); 

場合はあなたがあなたのアプリケーションで報酬として定義するものは何でも適用することができます。

関連する問題