2016-10-01 45 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,你可以申请任何你定义为在应用程序的奖励。