如何在谷歌播放中安装特定的外部应用程序时奖励Android用户

时间:2016-10-01 21:59:27

标签: android

我需要在已有的应用程序中推广新的Android应用程序,所以我想做的是在安装新应用程序时奖励用户。

我需要知道当用户安装新应用程序时应该捕获的事件是什么。

谢谢,

2 个答案:

答案 0 :(得分: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,您可以在申请中应用您定义的任何奖励。

答案 1 :(得分:0)

您应该注册BroadcastReceiver来监听包事件。请参阅下面的代码,仅监听包添加的事件。

在清单中:

<receiver android:name="PackageAddedReceiver">
    <intent-filter>
    <action android:name="android.intent.action.PACKAGE_ADDED"/>
    <data android:scheme="package"/>
    </intent-filter>
</receiver>

和你的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 
    }
}