TargetSDK 23, Titanium SDK 5.4.0Appcelerator: Share Screenshot von einer bestimmten Ansicht als Datei Ursache Zugriff verweigert Nachricht
Berechtigungen gesetzt:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Ich nehme einen Screenshot einer Ansicht durch das Schreiben zu einer Datei. Das hat funktioniert, weil ich diese Datei zu einer Bildansicht hinzufügen und das Bild sehen kann.
var blob = masterView.views[currentSavedPage].toImage();
var file = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory, "myNewImage.jpg");
file.write(blob);
Als ich versuche, das Bild mit zusätzlichem Text zu teilen, das andere App (Facebook, WhatsApp, ...) kann das Bild nicht zugreifen.
Ich habe nur eine Berechtigung als Fehler verweigert und weiß nicht, wie das zu beheben ist. Dies funktionierte mit einer niedrigeren SDK-Version.
fb4a.RequestLoggingListener: java.io.FileNotFoundException: /data/user/0/de.myapp.id/app_appdata/myNewImage.jpg: open failed: EACCES (Permission denied)
ExifInterface: java.io.FileNotFoundException: /data/user/0/de.myapp.id/app_appdata/myNewImage.jpg: open failed: EACCES (Permission denied)
BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /data/user/0/de.myapp.id/app_appdata/myNewImage.jpg: open failed: EACCES (Permission denied)
Lösung:
if (!Ti.Filesystem.hasStoragePermissions()) {
Ti.Filesystem.requestStoragePermissions(function(result) {
if (result.success) {
openShareIntent();
} else {
alert('Permissions denied.');
}
});
} else {
openShareIntent();
}
Vielen Dank –