安卓檢測手機是否安裝微信,QQ,微博
阿新 • • 發佈:2018-12-22
相信現在很多應用都支援第三方登入,都會呼叫第三方介面進行授權,上週我接手的應用也一樣,用到第三方登入,在一次偶然的時候,公司測試機器未安裝QQ,我點選第三方授權登入一直沒反應,我以為我程式碼問題,經過一番檢測,反正是測試機未安裝QQ,於是我就寫了個工具類來檢測機器是否安裝這些應用。程式碼如下,僅供參考。
/** * Created by zhou on 2018/7/23. * 檢測工具類 檢測手機是否安裝了這些應用 * 在需要的時候掉對應的方法 */ public class JudgeApplicationIsExistUtils { /** * 判斷微信 */ public static boolean isWeixinAvilible(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; } /** * 判斷qq是否可用 */ public static boolean isQQClientAvailable(Context context) { final PackageManager packageManager = context.getPackageManager(); 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.mobileqq")) { return true; } } } return false; } /** * 判斷微博 */ public static boolean isWeiboIAvilible(Context context) { PackageManager pm; if ((pm = context.getApplicationContext().getPackageManager()) == null) { return false; } List<PackageInfo> packages = pm.getInstalledPackages(0); for (PackageInfo info : packages) { String name = info.packageName.toLowerCase(Locale.ENGLISH); if ("com.sina.weibo".equals(name)) { return true; } } return false; } }
以上三個方法是檢測是否已經安裝此應用,使用如下
if (JudgeApplicationIsExistUtils.isQQClientAvailable(LoginActivity.this)){
// 已經安裝做你要做的事情,沒有則吐絲提示一下
}else {
Toast.makeText(LoginActivity.this,"檢測到您未安裝或登入QQ!",Toast.LENGTH_SHORT).show();
}