簡體   English   中英

無法從Android設備的SDcard文件夾中讀取文件?

[英]Can't read files from SDcard folder in Android device?

我正在嘗試訪問無根設備中Environment.getExternalStorageDirectory().getAbsolutePath() + /WhatsApp/Databases位置中存在的WhatsApp數據庫文件夾。

我的目的是收集這些文件並解密它們,並將每個消息顯示給Web portal 這是收集這些文件的代碼:

 String path = Environment.getExternalStorageDirectory().getAbsolutePath() + location;
 f = new File(path);
 final File file[]=f.listFiles();
 final int size = file.length;

每當我在有根設備上運行時, It is working但是在某些無根設備上,它會拋出nullpointer因為它無法獲取所有數據庫文件的列表。

我的問題是:如果設備不是root用戶,是否可以准備WhatsApp Database文件? 還是有什么辦法可以做到?

我不確定其根源 您是否已獲得針對您的應用的權限? 如果沒有,您可以嘗試在清單上放置uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE ,然后對其進行測試。

您可以讀取數據庫文件,如果設備沒有植根,請嘗試以下代碼。

我已經在HTC的 Samsung Grand 2中嘗試過這些

String path = Environment.getExternalStorageDirectory()
                + "/WhatsApp/Databases";
        File file = new File(path);
        if (file.exists()) {
            File[] filenames = file.listFiles();
            for (File tmpf : filenames) {
                // Do something with the files
                if (tmpf.isFile()) {
                    Log.e("tmpf-------->", "not add---->" + tmpf.getPath());
                }
            }

        } else {
            Log.e("folder not found", "folder not found");
        }

在此處輸入圖片說明

不要忘記添加權限

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

否,如果您沒有root權限,則無法從Android設備獲取SQLite數據庫文件,因為您無權訪問數據文件夾。

但是,如果您在模擬器上運行應用程序,則可以獲取數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM