/**
* 查询手机内非系统应用
* @param context
* @return
*/
public static List<PackageInfo> getInstalledApps(Context context) {
List<PackageInfo> apps = new ArrayList<PackageInfo>();
PackageManager pManager = context.getPackageManager();
//获取手机内所有应用
List<PackageInfo> paklist = pManager.getInstalledPackages(0);
String appName="";
for (int i = 0; i < paklist.size(); i++) {
PackageInfo pak = (PackageInfo) paklist.get(i);
//判断是否为非系统预装的应用程序
if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM)<=0) {
// 获取应用名并在LogCat中打印出来
appName = pManager.getApplicationLabel(pak.applicationInfo).toString();
Log.i("GetInstalledApkInfo", appName);
apps.add(pak);
}
}
return apps;
}
请问大神(pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM)<=0)这一句是什么意思??具体是如何判断非系统应用程序的?为什么使用按位与&呢????大神,求解求解。Android
* 查询手机内非系统应用
* @param context
* @return
*/
public static List<PackageInfo> getInstalledApps(Context context) {
List<PackageInfo> apps = new ArrayList<PackageInfo>();
PackageManager pManager = context.getPackageManager();
//获取手机内所有应用
List<PackageInfo> paklist = pManager.getInstalledPackages(0);
String appName="";
for (int i = 0; i < paklist.size(); i++) {
PackageInfo pak = (PackageInfo) paklist.get(i);
//判断是否为非系统预装的应用程序
if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM)<=0) {
// 获取应用名并在LogCat中打印出来
appName = pManager.getApplicationLabel(pak.applicationInfo).toString();
Log.i("GetInstalledApkInfo", appName);
apps.add(pak);
}
}
return apps;
}
请问大神(pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM)<=0)这一句是什么意思??具体是如何判断非系统应用程序的?为什么使用按位与&呢????大神,求解求解。Android
具体的可以去学习看下该类 我也是接触的不深~