用户登录
用户注册

分享至

获取安装软件列表 手机软件读取已安装应用列表会怎样

  • 作者: 回忆里的那个人丶92152756
  • 来源: 51数据库
  • 2020-04-21

一个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数据库 » 获取安装软件列表 手机软件读取已安装应用列表会怎样

软件
前端设计
程序设计
Java相关