Trong khi ghi tệp trong thẻ SD bên ngoài Tôi nhận được lỗi EACCESS cho phép bị từ chối. Tôi đã đặt quyền cho phép <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Nhưng khi tôi đọc tệp, tôi có thể đọc thành công tệp nhưng không thể ghi tệp. Mã mà tôi đang sử dụng để ghi tệp trong thẻ SD là:Quyền EACCESS bị từ chối trong Android
String path="mnt/extsd/Test";
try{
File myFile = new File(path, "Hello.txt"); //device.txt
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(txtData.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),"Done writing SD "+myFile.getPath(),Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_SHORT).show();
System.out.println("Hello"+e.getMessage());
}
}
Đường dẫn cho thẻ lưu trữ ngoài là mnt/extsd/
. Đó là lý do tại sao tôi không thể sử dụng Environment.getExternalStorageDirectory().getAbsolutePath()
, cho tôi đường dẫn mnt/sdcard
và đường dẫn này dành cho đường dẫn lưu trữ nội bộ trong máy tính bảng của tôi. Vui lòng đề xuất lý do vì sao tôi có thể giải quyết vấn đề này
ok..Khi nào là cách viết khác? – CodingDecoding
Bạn có quyền truy cập root vào máy tính bảng của mình không? Nếu chưa thì bạn có thể làm một thử nghiệm như thế này: 1) cho phép ứng dụng của bạn sử dụng quyền WRITE_MEDIA_STORAGE và sau đó xây dựng lại nó; 2) gỡ bỏ cài đặt ứng dụng của bạn nếu nó đã được cài đặt, sau đó chạy "adb root", "adb remount", "adb push YouApp.apk /system/app/YouApp.apk" điều này sẽ làm cho ứng dụng của bạn trở thành ứng dụng hệ thống; 3) khởi động ứng dụng của bạn và kiểm tra xem mã thử nghiệm có đang hoạt động hay không.Nếu có, dường như không có cách nào khác ngoại trừ việc ký ứng dụng bằng chứng chỉ nền tảng hoặc biến nó thành ứng dụng hệ thống. Hoặc bạn có thể chờ xem liệu có ai khác có ý tưởng hay hơn không. –
Cảm ơn thông tin. Nó thực sự giúp :) – CodingDecoding