Ich versuche PDF -Datei zu erstellen von Base64 String. Aufgrund des -Speicher Update in Android 11 muss ich meinen Code ändern, aber ich erhalte einen Fehler in Android 11 -Geräten:
Ich versuche [b] PDF -Datei zu erstellen [/b] von Base64 String. Aufgrund des -Speicher Update in Android 11 muss ich meinen Code ändern, aber ich erhalte einen Fehler in Android 11 -Geräten: [code]java.lang.IllegalArgumentException: Primary directory (invalid) not allowed for content://media/external/file; allowed directories are [Download, Documents] at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142) at android.content.ContentProviderProxy.insert(ContentProviderNative.java:549) at android.content.ContentResolver.insert(ContentResolver.java:2149) at android.content.ContentResolver.insert(ContentResolver.java:2111) < /code> Dieser Code erstellt eine PDF -Datei und speichern Sie sie in Ordner. < /p> public static void createPDF(Context mContext, String fileName, String base64) { try { String folderPath; File dwldsPath;
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) { folderPath = mContext.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS) + File.separator + "appFolderName"; dwldsPath = new File(folderPath + "/" + fileName);
File folder = new File(folderPath); folder.mkdirs();
ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DISPLAY_NAME, fileName); // file name values.put(MediaStore.MediaColumns.MIME_TYPE, "application/pdf"); // file extension, will automatically add to file values.put(MediaStore.DownloadColumns.RELATIVE_PATH, folderPath); // end "/" is not mandatory Uri uriFile = mContext.getContentResolver().insert(MediaStore.Files.getContentUri("external"), values); // important! OutputStream outputStream = mContext.getContentResolver().openOutputStream(uriFile); outputStream.write(Base64.decode(base64, 0)); outputStream.close(); } else { folderPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + File.separator + "appFolderName"; dwldsPath = new File(folderPath + "/" + fileName);
File folder = new File(folderPath); folder.mkdirs();
FileOutputStream os = new FileOutputStream(dwldsPath, false); os.write(Base64.decode(base64, 0)); os.flush(); os.close(); }
openPDF(mContext, dwldsPath); } catch (IOException e) { e.printStackTrace(); } catch (ActivityNotFoundException e) { Toast.makeText(mContext, "No PDF Viewer Installed", Toast.LENGTH_LONG).show(); } } < /code> Dieser Code funktioniert zum Öffnen der Datei < /p> public static void openPDF(Context mContext, File dwldsPath) { Intent intentUrl = new Intent(Intent.ACTION_VIEW); Uri uri = FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID + ".provider", dwldsPath); intentUrl.setDataAndType(uri, "application/pdf"); intentUrl.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intentUrl.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); mContext.startActivity(intentUrl); } [/code] Zusätzlich zu diesem Fehler gibt [b] order.mkdirs () false [/b] in Android 11 zurück.
< /code> Ich google es, aber ich konnte keine funktionierende Lösung finden, um Probleme zu beheben. Vielen Dank im Voraus.
Ich versuche PDF -Datei zu erstellen von Base64 String. Aufgrund des -Speicher Update in Android 11 muss ich meinen Code ändern, aber ich erhalte einen Fehler in Android 11 -Geräten:...
Ich begegne einen Pylanzfehler (ReportInvalidtypeForm) bei der Verwendung von Torch.tensor als Rückgabetyp Hinweis in meiner Pytorch nn.module -Unterklassen. Dies geschieht, obwohl aus zukünftige...
Meine Android -App integriert die Revenuecat SDK V8.3.1 und bietet Benutzern mehrere Abonnementstufen an. Der Fehler im Titel geschieht für einige Benutzer. Soweit ich erkannte, gibt es zwei Benutzer...
Ich bin dabei, einen Apache-Webserver so zu konfigurieren, dass nur die von der NIST genehmigte Verschlüsselung verwendet wird (speziell FIPS 140-2/140-3 konform). Einfach genug, oder? SSLProtocol...