Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';无法使用FileProvider发送正确的URI文件_Java_Android_Android Fileprovider - Fatal编程技术网

Java Can';无法使用FileProvider发送正确的URI文件

Java Can';无法使用FileProvider发送正确的URI文件,java,android,android-fileprovider,Java,Android,Android Fileprovider,我正在创建一个具有此路径的文件 File file = new File(getExternalFilesDir(null) + "/package.apk"); 然后我试着用这个代码发送它 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(FileProvider.getUriForFile(UpdateActivity.this, getPackageName() + ".provider", fil

我正在创建一个具有此路径的文件

File file = new File(getExternalFilesDir(null) + "/package.apk");
然后我试着用这个代码发送它

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(FileProvider.getUriForFile(UpdateActivity.this, getPackageName() + ".provider", file), "application/vnd.android.package-archive");
Log.d("uri",FileProvider.getUriForFile(UpdateActivity.this, getPackageName() + ".provider", file).toString());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
我的android清单是

<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
    android:name="android.support.FILE_PROVIDER_PATHS"
    android:resource="@xml/provider_paths" />
</provider>
运行代码后,我得到
解析包时出现问题
错误,但如果我使用文件管理器从路径
Android/my.package.name/files/package.apk打开文件,它正在解析,因此我发送的
URI
不正确,然后我尝试打印它,结果是错误的

content://my.package.name.provider/files/package.apk

我做错了什么?

您忘了在
意图上添加
标记\u GRANT\u READ\u URI\u权限
。目前,
Uri
是有效的,但安装程序无权访问其内容


还要注意的是,从Android 7.0开始,stock Android安装程序只支持
内容
方案。较旧的Android设备仅限于
文件

谢谢,但我在package Installer中再次遇到了这个错误。问题解决了,我在添加
标志\u授予\u读取\u URI\u权限后使用了
设置标志()
content://my.package.name.provider/files/package.apk