[英]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.