2016-10-01 55 views

回答

0

您應該註冊一個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,所以你知道用戶沒有安裝應用程序。

使用這種方法是:

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

如果該方法返回true,你可以申請任何你定義爲在應用程序的獎勵。

相關問題