Android - 可以访问系统/应用但无法访问数据/应用

时间:2017-09-25 19:53:18

标签: java android file

我有一个 rooted Android手机。我试图访问/data/app/文件夹。使用adb shell非常简单,但我想以编程方式访问它。

我的机器人清单:

...
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
...

有一个奇怪的事情,我可以轻松访问system/app,但没有机会在data/app中获取数据或目录名称。

一些java代码:

String data = Environment.getDataDirectory().getPath();       
String system = Environment.getRootDirectory().getPath();

File dir1= new File(system);
File dir2 = new File(data);

String[] ff1 = dir1.list(); // returns bunches of names/catalogs
String[] ff2 = dir2 .list(); // returns null

我错在哪里?谢谢你的帮助。

相关主题:How to access data/data folder in Android device?

1 个答案:

答案 0 :(得分:0)

如果有人有同样的错误,这就是解决方案:

String path = "/data/app/com.niceapp.hugepackage/base.apk";
File file= new File(path);

无法获取/data/app/的列表,但您可以直接访问该文件。仅供参考,这是获得所有套餐的方式:

 List<String > pkg_path = new ArrayList<String>();
 List<PackageInfo> pkginfo_list = pm.getInstalledPackages(PackageManager.GET_ACTIVITIES);
 List<ApplicationInfo> appinfo_list = pm.getInstalledApplications(0);
      for (int x=0; x < pkginfo_list.size(); x++){
            PackageInfo pkginfo = pkginfo_list.get(x);
            pkg_path.add(appinfo_list.get(x).publicSourceDir);  //store package path in array
      }