栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

存储访问框架-无法从uri获取文档树(从云端硬盘应用返回)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

存储访问框架-无法从uri获取文档树(从云端硬盘应用返回)

这可以与Google云端硬盘的云空间配合使用,但也许是黑客。不能保证始终工作。

本示例在用户创建的云文件夹中创建一个云文件(SAF选择器由应用程序打开)。

创建云文件夹(用户必须首先从选择器UI中选择云根)

 Intent intent = new Intent(Intent.ACTION_CREATE_document); intent.setType("vnd.android.document/directory"); intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); startActivityForResult(intent, CREATE_DIRECTORY_REQUEST_CODE);

onActivityResult

@Overrideprotected void onActivityResult(int requestCode,int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if (requestCode == CREATE_DIRECTORY_REQUEST_CODE)     {      if (resultCode == Activity.RESULT_OK) {      int takeFlags = data.getFlags()        &      (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);      ContentResolver resolver = this.getContentResolver();      resolver.takePersistableUriPermission(data.getData(),takeFlags);      archiveUri(data.getData().toString()); //important to save the toString() result, not getPath()      archiveAuthority(data.getData().getAuthority());      }       else       { // The user cancelled the request.      }    }}

下次使用Uri

ContentResolver contentResolver;contentResolver = this.getContentResolver();uriPath=retrieveArchivedUri();Uri tempUri;Uri uri; String authority;tempUri=Uri.parse(uriPath);authority=retrieveArchivedAuthority();uri= documentsContract.builddocumentUri(authority, documentsContract.getdocumentId(tempUri)); //folder Uritry { documentsContract.createdocument(contentResolver,uri,"plain/text","fileName");} catch (FileNotFoundException e) {        e.printStackTrace();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号