一个app无非实现一个团队或个人的商业价值和潜在可能,要是规模大的app,这种特征就非常明显,这种权限请求无非二种需求:
一、应用市场类,垃圾清理类,杀毒安全类,请求理由是检查应用是否需要升级、清理、杀毒,这种请求无可厚非,可以支持。
二、部分app需要调用外部(其他)app,比如说文件管理类app就需要知道哪些应用可以打开哪些文件,这种请求可以可以理解,但是完全可以避免,当然,请求也没什么问题。
扩展资料:
安卓手机APP读取已安装应用列表权限的作用:
应用读取应用列表主要是为了相互唤醒的,比如淘宝读取到了自家软件就有可能对其进行唤醒,如果禁止了,有时可能会影响淘宝的使用。
还有部分应用可能会存在恶意,扫描安装的应用,收集数据,后台将数据提交到软件开发商等等,一般情况下,通过正规的手机应用市场的应用软件还是可以选择允许的,如果不放心,可在权限管理中禁用相关应用的权限。
参考资料来源:华为花粉俱乐部-读取已安装应用列表权限有什么用?
获取系统已安装软件的列表
注册表的方法是对的 很多你非正常安装的软件 比如硬盘版之类的 即使软件管家也查不出来
应用权限中的“获取已安装应用列表”是什么意思?对手机使用有什么不良影响?
你指的是一些应用点开时申请的权限吧。我个人的理解是可以在这个应用上打开其他应用,比如在百度浏览器上直接跳转到百度知道APP这种。
不知道对不对,反正我都是允许的,没有影响吧。
手机软件读取已安装应用列表会怎样
手机软件 读取已安装应用列表 有危险呢?
获取已安装程序列表
Mark
等一下给你源码.
VC++6.0 和 VC++2008编译通过
输出到D:\reg_read.txt,以逗号分隔:
#include<stdio.h>#include<windows.h>
#pragmacomment(lib,"Advapi32.lib")
#defineMAX_BUF1024
intmain(intargc,char*argv[])
{
HKEYhKey;
charkey_name[MAX_BUF]={0};
DWORDkey_name_len=MAX_BUF;
constcharSubKey[]="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,SubKey,0,KEY_ENUMERATE_SUB_KEYS,&hKey))
{
printf("打开注册表失败!\n");
return-1;
}
FILE*fp=fopen("D:\\reg_read.txt","w");
inti=0;
while(ERROR_SUCCESS==RegEnumKeyEx(hKey,i++,key_name,&key_name_len,NULL,NULL,NULL,NULL))
{
//printf("OK!%d,%s\n",key_name_len,key_name);
charbuf[MAX_BUF]={0};
sprintf(buf,"%s\\%s",SubKey,key_name);
HKEYhSubKey;
if(ERROR_SUCCESS==RegOpenKeyEx(HKEY_LOCAL_MACHINE,buf,0,KEY_QUERY_VALUE,&hSubKey))
{
//printf("OK!%d,%s\n",key_name_len,key_name);
BYTEDisplayName[MAX_BUF]={0};
BYTEDisplayVersion[MAX_BUF]={0};
BYTEPublisher[MAX_BUF]={0};
DWORDkey_value_len=MAX_BUF;
RegQueryValueEx(hSubKey,"DisplayName",0,NULL,DisplayName,&key_value_len);
key_value_len=MAX_BUF;
RegQueryValueEx(hSubKey,"DisplayVersion",0,NULL,DisplayVersion,&key_value_len);
key_value_len=MAX_BUF;
RegQueryValueEx(hSubKey,"Publisher",0,NULL,Publisher,&key_value_len);
key_value_len=MAX_BUF;
//printf("%s,%s,%s\n",DisplayName,DisplayVersion,Publisher);
if(strlen((char*)DisplayName)>0)
{
fprintf(fp,"%s,%s,%s\n",(char*)DisplayName,(char*)DisplayVersion,(char*)Publisher);
}
RegCloseKey(hSubKey);
}
key_name_len=MAX_BUF;
memset(key_name,0,MAX_BUF);
}
fclose(fp);
RegCloseKey(hKey);
return0;
}
android获取安装程序的详细权限列表
PackageManager packManager = this.getPackageManager();
List<ApplicationInfo> infos = packManager.getInstalledApplications(PackageManager.GET_ACTIVITIES);
//获取到安装的App列表
Log.i("app", infos.size()+"");
for(ApplicationInfo info: infos){
Log.i("app", "appName--->"+packManager.getApplicationLabel(info)+"");
try {
PackageInfo packInfo = packManager.getPackageInfo(info.packageName, PackageManager.GET_PERMISSIONS);
String permissons [] = packInfo.requestedPermissions;
//获取该app的所有权限
int length = permissons.length;
for(int i = 0 ;i < length ;i ++){
Log.i("app",permissons[i]);
}
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
以上是获取系统安装程序列表和对应的权限的方法,知道这些就可以做出来了更多
可以给出完整代码么?
上面的代码放到Activity里面就可以运行了,我也是随便在某个Actvitiy中编写的,验证ok才复制过来的.
你是想要已经实现所有功能的工程吗?
如果有的话当然最好咯
获取软件列表的运行路径
注册表里面找
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall(找到你需要的软件名称,查找键名为[UninstallString]中的值,舍弃最后的文件,前面一般就是安装路径了)
转载请注明出处51数据库 » 获取安装软件列表 手机软件读取已安装应用列表会怎样
回忆里的那个人丶92152756
