我想将 MIUI 图库应用程序中的图像分享到我的应用程序,但收到的意图是
data=null
和
uri=content://com.miui.gallery.open/raw/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fcom.miui.gallery%2Fcache%2FSecurityShare%2F1657350098978.jpg
然后我使用
Cursor
来获取文件路径,路径是:
/storage/emulated/0/Android/data/com.miui.gallery/cache/SecurityShare/1657350098978.jpg
如您所见,它从其数据文件夹共享,因此我的应用程序无法访问该文件。这种情况仅发生在图像上,并且仅在 Xiomi MIUI 图库应用程序中发生。
这是我的清单:
<activity
android:name=".activity.ReceiveShareActivity"
android:configChanges="uiMode"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
这是我的代码:
Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
final String[] columns = {MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DISPLAY_NAME,
MediaStore.Files.FileColumns.SIZE,
MediaStore.Files.FileColumns._ID};
final String orderBy = MediaStore.Files.FileColumns._ID;
Cursor cursor = getContentResolver().query(uri, columns, MediaStore.Files.FileColumns.SIZE + ">0", null, orderBy);
感谢@blackapps,我尝试使用
Inputstream
和 URI,效果很好。
文件名:/storage/emulated/0/Android/data/ com.miui.gallery/files/gallery_disk_cache/small_size/
4cf9376dcba15cc89781aad25ee115e9529961b156a0c
66c05be148043aa9942.0
文件大小:11141字节
尺寸:180-320