获取程序安装卸载广播
电脑上有腾讯管家,作为安卓开发,用真机测试的比较多,鄙人算一个,不喜欢用应用宝,当你卸载了应用宝之后,插上USB,有时候就回静默安装应用宝,然后弹出应用宝获取什么什么权限,特别烦
手机在没有安装应用宝之前,开发一点问题也没有,手机也没有问题,静默安装后,好多天的周期手机会自动重启,死机等情况
今天又死机了一次,决定做一个当应用宝安装后弹出卸载框的程序 来提示我们卸载这个可恶的应用宝,我用的是华为3x
接收安装&卸载广播
package com.yqy.app;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.Toast;
public class SetupLisenerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 接收安装广播
if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
String packageName = intent.getDataString();
// Toast.makeText(context, "安装了:" + packageName + "包名的程序",
// Toast.LENGTH_SHORT).show();
// 安装了:package:com.tencent.android.qqdownloader包名的程序
if (packageName.equals("package:com.tencent.android.qqdownloader")) {
Uri packageURI = Uri.parse(packageName);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE,
packageURI);
// Receiver中使用startActivity 必须加上FLAG_ACTIVITY_NEW_TASK
uninstallIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// 在Receiver中尽量少使用startActivity 但是此功能必须这样
context.startActivity(uninstallIntent);
}
}
// 接收卸载广播
if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
// String packageName = intent.getDataString();
// Toast.makeText(context, "卸载了:" + packageName + "包名的程序",
// Toast.LENGTH_SHORT).show();
}
}
}
mainfest注册广播
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yqy.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.yqy.app.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SetupLisenerReceiver"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
</application>
</manifest>
广播接收器的注释写的很清楚,不仅试用于应用宝,同样适用于任何我们安卓开发者讨厌那些静默安装程序
资源下载地址android 应用程序安装卸载(卸载应用宝)