Questions tagged «android-fileprovider»

30
FileProvider-IllegalArgumentException:无法找到配置的根目录
我正在尝试用相机拍照,但是出现以下错误: FATAL EXCEPTION: main Process: com.example.marek.myapplication, PID: 6747 java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/com.example.marek.myapplication/files/Pictures/JPEG_20170228_175633_470124220.jpg at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711) at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400) at com.example.marek.myapplication.MainActivity.dispatchTakePictureIntent(MainActivity.java:56) at com.example.marek.myapplication.MainActivity.access$100(MainActivity.java:22) at com.example.marek.myapplication.MainActivity$1.onClick(MainActivity.java:35) AndroidManifest.xml: <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.marek.myapplication.fileprovider" android:enabled="true" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider> Java: Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // Ensure that there's a camera …

9
如何使用支持FileProvider与其他应用程序共享内容?
我正在寻找一种使用Android支持库的FileProvider与外部应用程序正确共享(而不是打开)内部文件的方法。 按照文档上的示例, <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.android.supportv4.my_files" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/my_paths" /> </provider> 并使用ShareCompat将文件共享到其他应用程序,如下所示: ShareCompat.IntentBuilder.from(activity) .setStream(uri) // uri from FileProvider .setType("text/html") .getIntent() .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) 不起作用,因为FLAG_GRANT_READ_URI_PERMISSION仅授予data对intent 上指定的Uri的许可,而不是EXTRA_STREAMextra 的值(由setStream)。 我试图通过将提供者设置android:exported为来损害安全性true,但是在FileProvider内部检查自身是否已导出,如果导出,则抛出异常。

4
Android安装带有Intent.VIEW_ACTION的APK不适用于文件提供程序
我的应用程序具有自动更新功能,可以下载APK,下载完成后会显示一个Intent.VIEW_ACTION以打开应用程序,并让用户安装下载的apk Uri uri = Uri.parse("file://" + destination); Intent install = new Intent(Intent.ACTION_VIEW); install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); install.setDataAndType(uri, manager.getMimeTypeForDownloadedFile(downloadId)); activity.startActivity(install); 此功能适用于所有<24的设备 现在,显然在Android 24中,我们不再被允许使用file:///来启动意图。 新代码: Intent install = new Intent(Intent.ACTION_VIEW); install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); install.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); Uri apkUri = FileProvider.getUriForFile(AutoUpdate.this, BuildConfig.APPLICATION_ID + ".provider", file); install.setDataAndType(apkUri, manager.getMimeTypeForDownloadedFile(downloadId)); activity.startActivity(install); 现在activity.startActivity(install); 引发错误 找不到用于处理意图的活动{act = android.intent.action.VIEW dat = content://com.xxxx.xx.provider/MyFolder/Download/MyApkFile.apk typ = application / …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.