我需要在已有的应用程序中推广新的Android应用程序,所以我想做的是在安装新应用程序时奖励用户。
我需要知道当用户安装新应用程序时应该捕获的事件是什么。
谢谢,
答案 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
}
}