私のアプリでは、ShareActionProvider クラスを介して共有ボタンを追加しています。ファイルシステムから取得した 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();
}
この問題を解決するにはどうすればよいですか?