And*_*oid 10 provider permissions android uri grant
我搜索并阅读了android开发者文件,但我没有找到任何令人满意的答案内容提供商授予uri权限.任何人都可以解释得更详细,更简单.我的问题是:uri正在使用什么资助?grant uri permission true和false之间有什么区别我们应该使用true吗?什么时候假?并且感谢更多细节.
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.
假设您需要邮寄一些位于应用程序缓存目录中的文件。
没有其他应用程序可以访问该文件,除非您指定其他应用程序可以访问您的应用程序的内容。为此,您创建内容提供程序,并说,所有 uri 格式为 content://com.your.app/file,您将“重定向”到您的应用程序缓存目录。
一些代码:
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"));
Run Code Online (Sandbox Code Playgroud)
正如 CommonsWare 所说:
android:grantUriPermissions="false" 表示只有子 <grant-uri-permission> 元素指定的 Uri 值可以与 FLAG_GRANT_READ_URI_PERMISSION 和 FLAG_GRANT_WRITE_URI_PERMISSION 一起使用。
| 归档时间: |
|
| 查看次数: |
13061 次 |
| 最近记录: |