Android(安卓)检测微信或者微博是否安装
16lz
2021-01-25
在第三方分享时,可能遇到一种场景是。在点击某个分享时需要判断是否已经安装该程序。然后中断或者给出提示
/** * 检测是否安装微信 * * @param context * @return */ public static boolean isWxInstall(Context context) { final PackageManager packageManager = context.getPackageManager();// 获取packagemanager List pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息 if (pinfo != null) { for (int i = 0; i < pinfo.size(); i++) { String pn = pinfo.get(i).packageName; if (pn.equals("com.tencent.mm")) { return true; } } } return false; }
其他应用程序的包名(替换包名即可)
微博 com.sina.weiboQQ com.tencent.mobileqq
看到这里基本的需求就已经满足了,但如果中途卸载或者安装如何监听呢
/** * screen状态广播接收者 */ private class ScreenBroadcastReceiver extends BroadcastReceiver { private String action = null; @Override public void onReceive(Context context, Intent intent) { //接收安装广播 if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) { String packageName = intent.getDataString(); ALog.e(TAG, "安装了:" + packageName + "包名的程序"); } //接收卸载广播 if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) { String packageName = intent.getDataString(); ALog.e(TAG, "卸载了:" + packageName + "包名的程序"); } } } /** * 启动screen状态广播接收器 */ private void registerListener() { IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.PACKAGE_ADDED"); filter.addAction("android.intent.action.PACKAGE_REMOVED"); filter.addDataScheme("package"); mContext.registerReceiver(mScreenReceiver, filter); }
end……….
更多相关文章
- android studio运行Kotilin程序出现Error:(5, 8) Unresolved ref
- android sqlite相关
- [Android] 在程序中实现延时的常用的两种方式
- android 在一个应用中启动另一个应用
- Android网络状态实时监听器
- Android(安卓)NetworkManager
- Android(安卓)自定义Toast显示(不限时+在其他应用之上显示)
- WebView设置之WebViewClient
- Android(安卓)Jetpack之生命周期的处理