当我从提供的对话框中选择我的应用程序以选择媒体时,我尝试将意图的结果(我的应用程序中所选媒体的URI
)发送回来电应用程序。对于大多数应用程序而言,它可以完美运行,但在像Pixlr这样的应用程序上它会显示cannot open the image
。还有什么我应该添加到其他应用程序正确请求的URI
的意图,以涵盖某些特定的应用程序吗?
这是我的intent filter
:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
,这就是我尝试从我的应用中发送媒体采摘结果的方式:
Intent pickResultIntent = new Intent().setData(mediaContentUri);
setResult(Activity.RESULT_OK, pickResultIntent);
finish();
这就是我获得mediaUri的方式:
mediaContentUri = ContentUris.withAppendedId(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
mediaId);
答案 0 :(得分:0)
Intent pickResultIntent = new Intent().setData(mediaContentUri);
pickResultIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
setResult(Activity.RESULT_OK, pickResultIntent);
finish();