[英]Android : How to get the List of Installed apps that use Internet Access - PackageManager
我想知道是否有可能,我們通過以下方式獲得已安裝應用程序的列表:
PackageManager pm = AppList.this.getPackageManager();
Intent intent = new Intent( Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List list = pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
for ( ResolveInfo rInfo : list)
{
results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm));
}
我們可以對使用Internet訪問工作的應用進行排序或過濾嗎?
歡迎您檢索與應用程序相對應的PackageInfo
,然后檢查其requestedPermissions
數組以查看是否有INTERNET
權限。
此功能將檢查活動是否具有互聯網權限以及是否授予該權限。 您必須對服務進行相應的修改。
boolean checkIfUsesInet(ResloveInfo rInfo) {
boolean result = false;
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(rInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS);
for(int i=0; i < packageInfo.requestedPermissions.length; i++) {
String permission = packageInfo.requestedPermission[i];
int permissionFlag = packageInfo.requestedPermissionFlags[i];
if(Manifest.permission.INTERNET.equals(permission) && (permissionFlag & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0)
result = true;
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.