[英](Android) detect when another app is launched / launch count of all app
[英]Android: Install another app and detect when it is launched the first time
我有一个可以安装其他应用程序的应用程序,就像Google Play商店一样。 为了完成分析链,我需要能够检测到首次启动安装的应用程序的时间。
Google Play商店肯定以某种方式实现了它。
Android系统为您做到了。 首次启动已安装的应用程序时,程序包管理器向安装程序广播Intent.ACTION_PACKAGE_FIRST_LAUNCH
。 为确保收到,您需要:
在安装应用程序后立即设置安装程序包名称,因为广播仅限于为要启动的应用程序设置的安装程序包名称。
getPackageManager().setInstallerPackageName("com.example", getApplicationContext().getPackageName());
确保您没有使用PackageManager.INSTALL_REPLACE_EXISTING
,因为它将被认为是更新,而广播不是由系统发送的
Intent.ACTION_PACKAGE_FIRST_LAUNCH
不是在清单中为操作Intent.ACTION_PACKAGE_FIRST_LAUNCH
注册接收器。 注册广播接收器:
registerReceiver(new LaunchReceiver(), new IntentFilter(Intent.ACTION_PACKAGE_FIRST_LAUNCH));
广播接收器示例:
public class LaunchReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getData() != null) {
Log.d(TAG, "Package name: " + intent.getDataString().replace("package:", ""));
}
}
}
有关更多信息,请在此处阅读实际代码: PackageManagerService.notifyFirstLaunch()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.