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

Android 检测微信或者微博是否安装

2016-10-25 17:38 363 查看
在第三方分享时,可能遇到一种场景是。在点击某个分享时需要判断是否已经安装该程序。然后中断或者给出提示

/**
* 检测是否安装微信
*
* @param context
* @return
*/
public static boolean isWxInstall(Context context) {
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
List<PackageInfo> 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.weibo
QQ   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……….
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息