Java 使用FileProvider使用android默认应用程序打开映像(内部存储)
我有一张图片存储在我的内部应用程序存储器中,我想用android默认应用程序(gallery或任何其他应用程序)打开它 因此,我使用的是一个文件提供商,我的代码在android 4.3上运行良好,但在某些版本(例如2.3.6)上,它不工作,应用程序会自动打开,但随后会出现黑屏,什么都没有。 我的应用程序需要与API-10兼容 我读了很多关于这个问题的话题,似乎没有什么能解决它。代码可能没有错,因为它在4.3上工作。。。 有什么想法吗 启动活动的我的代码:Java 使用FileProvider使用android默认应用程序打开映像(内部存储),java,android,android-intent,android-contentprovider,Java,Android,Android Intent,Android Contentprovider,我有一张图片存储在我的内部应用程序存储器中,我想用android默认应用程序(gallery或任何其他应用程序)打开它 因此,我使用的是一个文件提供商,我的代码在android 4.3上运行良好,但在某些版本(例如2.3.6)上,它不工作,应用程序会自动打开,但随后会出现黑屏,什么都没有。 我的应用程序需要与API-10兼容 我读了很多关于这个问题的话题,似乎没有什么能解决它。代码可能没有错,因为它在4.3上工作。。。 有什么想法吗 启动活动的我的代码: File file = getMyFil
File file = getMyFile();
Uri contentUri = FileProvider.getUriForFile(getContext(), <full-path-to-my-activity>, file);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(contentUri, "image/*");
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent = Intent.createChooser(intent, "Open with");
startActivity(intent);
File File=getMyFile();
Uri contentUri=FileProvider.getUriForFile(getContext(),file);
意图=新意图();
intent.setAction(intent.ACTION\u视图);
setDataAndType(contentUri,“image/*”);
intent.setFlags(intent.FLAG_GRANT_READ_URI_PERMISSION|intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(intent.FLAG\u活动\u新任务);
intent=intent.createChooser(intent,“打开时使用”);
星触觉(意向);
在我的清单中:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="<full-path-to-my-activity>"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider"/>
</provider>
my provider.xml:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<files-path
name="pictures"
path=""/>
</paths>
问题很可能出现在其他应用程序中,而不是您的应用程序中。很多Android开发者都没有很好地处理内容://
Uri
值:我试过的应用程序是官方的Android gallery应用程序。我猜它应该行得通不?“我猜它应该行得通不?”——我不会这么想,尤其是回到那么远的地方。LogCat是否显示任何错误消息,可能来自图库?不,LogCat没有显示任何错误消息。请尝试模拟器。问题可能是三星更换Gallery造成的。