广播监听手机中应用程序是否安装并卸载
发布时间:2020-12-14 23:18:07 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public class PackageReceiver extends BroadcastReceiver {private static final int PACKAGE_NAME_INDEX = 8;@Overridepublic void onReceive(Conte
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 public class PackageReceiver extends BroadcastReceiver { private static final int PACKAGE_NAME_INDEX = 8; @Override public void onReceive(Context context,Intent intent) { if (intent != null) { /**安装程序的ACTION为Intent.ACTION_PACKAGE_ADDED*/ if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) { String data = intent.getDataString(); if (data == null || data.length() <= PACKAGE_NAME_INDEX) { return; } String packageName = data.substring(PACKAGE_NAME_INDEX); if (isAvilible(context,packageName)) { /**说明安装了应用包*/ Uri uri = Uri.fromParts("package",packageName,null); /**监听应用卸载的ACTION*/ intent = new Intent(Intent.ACTION_DELETE,uri); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } else { Toast.makeText(context,"手机并没有安装该应用!",Toast.LENGTH_SHORT).show(); } } } } /**检测是否安装了微信的客户端*/ public static boolean isAvilible(Context context,String packageName) { /**包管理器PackageManager*/ final PackageManager packageManager = context.getPackageManager(); /**所有已安装程序的包信息*/ List<PackageInfo> pinfo = packageManager.getInstalledPackages(0); /**存储所有已安装程序的包名*/ List<String> pName = new ArrayList<String>(); if (pinfo != null) { for (int i = 0; i < pinfo.size(); i++) { String pn = pinfo.get(i).packageName; pName.add(pn); } } return pName.contains(packageName); } } -----------AndroidManifest.xml中注册广播--------------------------- <receiver android:name=".PackageReceiver"> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <data android:scheme="package" /> </intent-filter> </receiver> 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |