您的位置:首页 > 移动开发 > Android开发

监听android程序的卸载,安装,更新替换

2013-03-17 11:43 453 查看
先是AndroidManifest里边写

<receiver android:name="com.qzb.receiver.ApplicationInstallUninstallReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
//下边这个一定要写,否则接受不到broadcast
<data android:scheme="package" />
</intent-filter>
</receiver>

然后是代码

public void onReceive(Context context, Intent intent) {
// TODO 自动生成的方法存根
if ("android.intent.action.PACKAGE_REMOVED".equals(intent.getAction())) {
// 判断是否是替代原软件
final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
if (!replacing) {//安装新软件
final int uid = intent.getIntExtra(Intent.EXTRA_UID, -123);
Toast.makeText(context, "uid is "+uid, Toast.LENGTH_LONG).show();
}else{//更新软件
final int uid = intent.getIntExtra(Intent.EXTRA_UID, -123);
Toast.makeText(context, "true uid is "+uid, Toast.LENGTH_LONG).show();
}
} else if ("android.intent.action.PACKAGE_ADDED".equals(intent.getAction())) {
final int uid = intent.getIntExtra(Intent.EXTRA_UID, -123);
Toast.makeText(context, "uid is "+uid, Toast.LENGTH_LONG).show();
}
}

获得程序的名称:String packageName = intent.getDataString();

主意,更新,替换软件不会改变uid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: