Der folgende Code unterstützt wird in Geräten mit API 22, sondern in Geräten mit API 24 gibt es die folgenden Fehler absolut in Ordnung arbeiten:kann keine PDF-Datei von Assets Ordnern anzuzeigen, wie MODE_WORLD_READABLE länger keine
java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
Hier ist mein Code :
private void CopyReadAssets(String filename) {
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), filename);
try {
in = assetManager.open(filename);
out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/pdf");
startActivity(intent);
} catch (Exception e)
{
Log.e("cra",e.toString());
Toast.makeText(PdfFilesList.this, "cra: "+e.toString(), Toast.LENGTH_SHORT).show();
}
}
Wenn ich MODE_WORLD_READABLE MODE_PRIVATE ändern dann stoppt sie in allen Geräten arbeiten. Geräte mit API 22 geben dem folgenden Fehler
11-16 12:00:53.133 16531-31103/? E/DisplayData: openFd: java.io.FileNotFoundException: Permission denied
11-16 12:00:53.134 16531-31103/? E/PdfLoader: Can't load file (doesn't open) Display Data [PDF : 818 New Jeevan Nidhi.pdf] +FileOpenable, uri: file:///data/data/com.user.plansmart/files/818%20New%20Jeevan%20Nidhi.pdf
Gerät mit 24 API werfen die folgende Ausnahme
11-16 12:05:00.100 2682-2682/com.user.plansmart E/cra: android.os.FileUriExposedException: file:///data/user/0/com.user.plansmart/files/827%20Jeevan%20Rakshak.pdf exposed beyond app through Intent.getData()
mir jemand in die Lösung des Problems helfen können.
Danke.
'kann-nicht anzeigen-pdf-Datei-von-Assets-Ordner' Falsche Info. Sie versuchen, eine externe App eine PDF-Datei aus dem internen Speicher Ihrer Apps anzeigen zu lassen. NICHT von Vermögenswerten. – greenapps