簡體   English   中英

Appcelerator:將特定視圖的屏幕快照共享為“文件原因許可被拒絕”消息

[英]Appcelerator: Share Screenshot of a specific view as a File cause Permission denied message

TargetSDK 23,Titanium SDK 5.4.0

權限設置:

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我將視圖的屏幕快照寫入文件中。 那行得通,因為我可以將此文件添加到imageview並查看圖像。

var blob = masterView.views[currentSavedPage].toImage();
    var file = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory, "myNewImage.jpg");
    file.write(blob);

當我嘗試與其他文本共享圖像時,其他應用程序(Facebook,Whatsapp等)無法訪問該圖像。

intent = Ti.Android.createIntent({
            action : Ti.Android.ACTION_SEND,
            type : "image/jpeg"
        });
        intent.putExtra(Ti.Android.EXTRA_TEXT, text);
        intent.putExtra(Ti.Android.EXTRA_SUBJECT, subject);
        intent.putExtraUri(Ti.Android.EXTRA_STREAM, file.nativePath);
        share = Ti.Android.createIntentChooser(intent, 'Bild teilen');

我只有一個權限被拒絕為錯誤,並且不知道如何解決。 這與較低的SDK版本一起使用。

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)

解:

if (!Ti.Filesystem.hasStoragePermissions()) {
  Ti.Filesystem.requestStoragePermissions(function(result) {
    if (result.success) {
      openShareIntent();
    } else {
      alert('Permissions denied.');
    }
  });
} else {
  openShareIntent();
}

如果尚未完成:

嘗試轉到設置->應用程序-> YourApp; 然后單擊權限並授權訪問存儲。

但是您應該直接從應用程序請求許可。 官方文檔的示例很簡單: https//developer.android.com/training/permissions/requesting.html

您需要為Android 6.0及更高版本實現運行時權限。 由於它沒有權限,即使在清單或tiapp.xml中定義也是如此。 提供運行時權限,並且不應給出權限錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM