这可以与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();}


