获取具有特定权限的应用程序名称 [英] Get application names with specific permission
本文介绍了获取具有特定权限的应用程序名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想安装的使用特定的权限,如互联网设备上的所有应用程序列表。
我用这code,但无法检索的结果,请大家帮忙。
私人的ArrayList<字符串> getInstalledApps(上下文的背景下){
ArrayList的<字符串>结果=新的ArrayList<字符串>();
PackageManager packageManager = context.getPackageManager();
名单< PackageInfo> APPLIST = packageManager.getInstalledPackages(0);
迭代器< PackageInfo>它= applist.iterator();
而(it.hasNext()){
PackageInfo PK =(PackageInfo)it.next();
如果(PackageManager.PERMISSION_GRANTED == packageManager.checkPermission(Manifest.permission.INTERNET,pk.packageName))
results.add(+ pk.applicationInfo.loadLabel(packageManager));
}
的for(int i = 0; I< = results.size();我++){
Log.v(,results.toString使用互联网=程序());
}
返回结果;
}
解决方案
我试过code在Android 2.2模拟器,这是工作的罚款。以下是工作code:
私人的ArrayList<字符串> getInstalledApps(上下文的背景下){
ArrayList的<字符串>结果=新的ArrayList<字符串>();
PackageManager packageManager = context.getPackageManager();
名单< PackageInfo> APPLIST = packageManager.getInstalledPackages(0);
迭代器< PackageInfo>它= applist.iterator();
而(it.hasNext()){
PackageInfo PK =(PackageInfo)it.next();
如果((pk.applicationInfo.flags&安培;!ApplicationInfo.FLAG_SYSTEM)= 0){
Log.v(使用互联网=系统应用,+ pk.applicationInfo.loadLabel(packageManager));
继续;
}
如果(PackageManager.PERMISSION_GRANTED == packageManager
.checkPermission(Manifest.permission.INTERNET,
pk.packageName))
results.add(+ pk.applicationInfo.loadLabel(packageManager));
}
Log.v(,results.toString使用互联网=程序());
返回结果;
}
I want list of all applications installed on the device which use a specific permission like INTERNET.
i am using this code , but not able to retrieve results , please help .
private ArrayList<String> getInstalledApps(Context context) {
ArrayList<String> results = new ArrayList<String>();
PackageManager packageManager = context.getPackageManager();
List<PackageInfo> applist = packageManager.getInstalledPackages(0);
Iterator<PackageInfo> it = applist.iterator();
while (it.hasNext()) {
PackageInfo pk = (PackageInfo) it.next();
if (PackageManager.PERMISSION_GRANTED == packageManager.checkPermission(Manifest.permission.INTERNET, pk.packageName))
results.add("" + pk.applicationInfo.loadLabel(packageManager));
}
for (int i = 0; i <= results.size(); i++) {
Log.v("app using internet = ", results.toString());
}
return results;
}
解决方案
I tried the code on android 2.2 emulator and it was working fine. Following is the working code:
private ArrayList<String> getInstalledApps(Context context) {
ArrayList<String> results = new ArrayList<String>();
PackageManager packageManager = context.getPackageManager();
List<PackageInfo> applist = packageManager.getInstalledPackages(0);
Iterator<PackageInfo> it = applist.iterator();
while (it.hasNext()) {
PackageInfo pk = (PackageInfo) it.next();
if ((pk.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
Log.v("system app using internet = ", ""+pk.applicationInfo.loadLabel(packageManager));
continue;
}
if (PackageManager.PERMISSION_GRANTED == packageManager
.checkPermission(Manifest.permission.INTERNET,
pk.packageName))
results.add("" + pk.applicationInfo.loadLabel(packageManager));
}
Log.v("app using internet = ", results.toString());
return results;
}
这篇关于获取具有特定权限的应用程序名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文