检测手机用户安装的应用程序是否有使用某权限
public void getInstalledApps(){
try {
/*列出当前设备的所有安装程序*/
List<ApplicationInfo> appInfos = getPackageManager().getInstalledApplications(0);
for(ApplicationInfo appInfo : appInfos){
boolean flag = false;
//检测是否为用户安装的应用程序
if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
flag = true;
} else if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
flag = true;
}
//如果为用户安装的应用程序则检测是否有android.permission.SEND_SMS
if(flag && appInfo.enabled){
//检测是否有发送短信权限
String permName = "android.permission.SEND_SMS";
String pkgName = appInfo.packageName;
//结果为0则表示使用了该权限,-1则表求没有使用该权限
int reslut = getPackageManager().checkPermission(permName, pkgName);
if(reslut == PackageManager.PERMISSION_GRANTED){
Log.d("debug", "ApplicationInfo: "+pkgName+" 有使用权限: "+permName);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}