2017-09-25 25 views
1

私はルーテッドアンドロイド携帯を持っています。そして、/data/app/フォルダにアクセスしようとしています。 adbシェルを使うとかなり簡単ですが、プログラムでアクセスしたいのです。Android - システム/アプリにアクセスできますが、データ/アプリにはアクセスできません

マイアンドロイドマニフェスト:

... 
    <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?

答えて

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 
     } 
関連する問題