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();
}
}
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();
}
}