27
android.os.FileUriExposedException: file: ///storage/emulated/0/test.txt สัมผัสนอกแอพผ่าน Intent.getData ()
แอพหยุดทำงานเมื่อฉันพยายามเปิดไฟล์ มันทำงานด้านล่าง Android Nougat แต่ใน Android Nougat มันล้มเหลว มันพังเมื่อฉันพยายามเปิดไฟล์จากการ์ด SD ไม่ใช่จากพาร์ติชันระบบ ปัญหาการอนุญาตบางอย่าง? รหัสตัวอย่าง: File file = new File("/storage/emulated/0/test.txt"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file), "text/*"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); // Crashes on this line เข้าสู่ระบบ: android.os.FileUriExposedException: file: ///storage/emulated/0/test.txt สัมผัสนอกแอพผ่าน Intent.getData () แก้ไข: เมื่อกำหนดเป้าหมายเป็น Android Nougat file://จะไม่อนุญาตให้ใช้ URI อีกต่อไป เราควรใช้content://URIs แทน อย่างไรก็ตามแอพของฉันต้องเปิดไฟล์ในไดเรกทอรีราก ความคิดใด …