【发布时间】:2015-06-12 15:39:08
【问题描述】:
我希望我的应用仅在共享本地可用文件时显示在共享菜单中。
目前它看起来像下面这样,但这会在共享图像时显示我的应用程序,无论图像是来自内部内容提供者还是文件系统上真实文件的路径是否被共享。
<activity
android:name=".activities.ViewerActivity"
android:label="@string/app_name_sharing_to_display"
android:theme="@style/AppThemeFullScreen"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*"/>
</intent-filter>
</activity>
我收到如下本地路径,并将它们保存在历史记录中,我不需要也不需要其他文件。
private String getRealPathFromURI(Uri contentURI)
{
String result = null;
Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
if (cursor == null)
{
result = contentURI.getPath();
}
else
{
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
if (idx >= 0)
result = cursor.getString(idx);
cursor.close();
}
return result;
}
【问题讨论】:
标签: android android-activity share intentfilter