Tag: android fileprovider

FileProvider不能使用相机

我试图让相机应用程序将输出存储到我的内部存储。 我也明白,第三方应用程序无法访问我的应用程序的内部存储, 但我们可以通过FileProvider公开内部目录来FileProvider 。 我在这里遵循指南: 相机意图不保存照片 https://developer.android.com/reference/android/support/v4/content/FileProvider.html 我用下面的方式指定我的AndroidManifest.xml : <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.stackoverflow.test.camerawithfileprovider" > <application> <activity … </activity> <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.stackoverflow.test.camerawithfileprovider.fileprovider" android:exported="false" android:grantUriPermissions="true" > <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_provider_path" /> </provider> </application> </manifest> 我在/res/xml/创build了名为file_provider_path.xml的xml文件: <?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <files-path name="image_capture" path="public/" /> </paths> 这是我创build和调用相机意图的方式: private static final int CAMERA_REQUEST_CODE = 5000; private static final […]

如何使用支持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上指定的Uri的权限,而不是EXTRA_STREAM额外的值(由setStream设置)。 我试图通过为提供者设置android:exported为true来危害安全性,但FileProvider内部检查自身是否被导出,如果是,则抛出exception。