在我的應用程序中,我通過ShareActionProvider類添加了一個Share按鈕。我試圖分享我從文件系統中提取的PNG。問題是,我得到了我拋出以下錯誤,當我嘗試與股票消息應用程序打開失敗:EACCES(Permission denied)即使我有權限讀取PNG
com.google.android.mms.MmsException: /data/data/com.frostbytedev.wifiqr/files/QRCode.png: open failed: EACCES (Permission denied)
起初我還以爲是我的權限共享,但我有我的清單以下權限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
,我嘗試從文件系統中得到它的位置是在這裏:
Uri uri = Uri.fromFile(new File(getFilesDir(), "/QRCode.png"));
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM,uri);
provider.setShareIntent(intent);
如果你想知道,他是我保存圖像
String fileName = getFilesDir() + "/QRCode.png";
etSSID.setText(fileName);
OutputStream stream = null;
try {
stream = new FileOutputStream(fileName);
bmp.compress(Bitmap.CompressFormat.PNG, 80, stream);
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
代碼我該如何解決這個問題?
我做了.setReadable和現在得到ENOENT(沒有這樣的文件或目錄) –
@SteveSmith聽起來像有什麼不對您的路徑(或做你做,你保存文件之前?)新增替代件的代碼來回答應該工作 – zapl
setReadable()適用於我。 – porquero