我搜索并阅读了android开发者文件,但我没有找到任何令人满意的答案,内容提供商授予uri权限。任何人都可以解释得更详细,更简单。我的问题是: uri正在使用什么资助? grant uri permission true和false之间的区别是什么 什么时候应该使用true?什么时候假? 我们非常感谢任何细节。
答案 0 :(得分:9)
uri正在使用什么资助?
"授予Uri
权限"功能允许您拥有第三方通常无法访问的ContentProvider
,但有选择地允许在短时间内访问各个第三方应用的单个Uri
值(例如,足够长的时间来查看提供者所服务的PDF。)
grant uri permission true和false
之间的区别是什么?
android:grantUriPermissions="true"
表示您的Java代码可以对FLAG_GRANT_READ_URI_PERMISSION
所服务的任何FLAG_GRANT_WRITE_URI_PERMISSION
使用Uri
和ContentProvider
。
android:grantUriPermissions="false"
表示只有Uri
元素指定的<grant-uri-permission>
值可以与FLAG_GRANT_READ_URI_PERMISSION
和FLAG_GRANT_WRITE_URI_PERMISSION
一起使用。
答案 1 :(得分:3)
假设您需要邮寄应用程序缓存目录中的某个文件。
除非您指定其他应用可以访问您的应用内容,否则没有其他应用可以访问该文件。为此,您可以创建内容提供商,并说明表格内容中的所有内容://com.your.app/file您重定向&#39;到您的应用程序缓存目录。
一些代码:
File f = ...; // Some local file.
Uri uri = Uri.parse("content://com.your.app/" + f.getName());
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "Body");
intent.putExtra(Intent.EXTRA_STREAM, uri);
// You only can add flag FLAG_GRANT_READ_URI_PERMISSION if your app has
// android:grantUriPermissions="true" in manifest or see quote below.
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(intent, "Send Email"));
正如CommonsWare所说:
机器人:grantUriPermissions =&#34;假&#34;表示只有Uri值 由儿童指定&lt; grant-uri-permission&gt;元素可以使用 FLAG_GRANT_READ_URI_PERMISSION和FLAG_GRANT_WRITE_URI_PERMISSION。
答案 2 :(得分:0)
appender.rolling.fileName