网站怎么做下载网页,wordpress外链图片无法显示,第一次和别人女友做网站,亚马逊网站特点和经营范围很多好的问题#xff0c;让我们深入。:)你如何使用它#xff1f;这是一个伟大的教程与KitKat中的存储访问框架交互#xff1a;在Lollipop中与新的API交互非常相似。要提示用户选择目录树#xff0c;您可以启动这样的意图#xff1a;Intent intent new Intent(Intent.ACTI…很多好的问题让我们深入。:)你如何使用它这是一个伟大的教程与KitKat中的存储访问框架交互在Lollipop中与新的API交互非常相似。要提示用户选择目录树您可以启动这样的意图Intent intent new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);startActivityForResult(intent, 42);然后在您的onActivityResult()中您可以将用户选择的Uri传递给新的DocumentFile辅助类。这里有一个快速示例列出了挑选的目录中的文件然后创建一个新文件public void onActivityResult(int requestCode, int resultCode, Intent resultData) {if (resultCode RESULT_OK) {Uri treeUri resultData.getData();DocumentFile pickedDir DocumentFile.fromTreeUri(this, treeUri);// List all existing files inside picked directoryfor (DocumentFile file : pickedDir.listFiles()) {Log.d(TAG, Found file file.getName() with size file.length());}// Create a new file and write into itDocumentFile newFile pickedDir.createFile(text/plain, My Novel);OutputStream out getContentResolver().openOutputStream(newFile.getUri());out.write(A long time ago....getBytes());out.close();}}DocumentFile.getUri()返回的Uri足够灵活可以与不同的平台API一起使用。例如您可以使用Intent.setData()与Intent.FLAG_GRANT_READ_URI_PERMISSION共享它。如果要从本机代码访问Uri可以调用ContentResolver.openFileDescriptor()然后使用ParcelFileDescriptor.getFd()或detachFd()获取传统的POSIX文件描述符整数。如何检查是否可以访问文件/文件夹默认情况下通过存储访问框架返回的Uris意图不会在重新启动后持久化。平台“提供”持久化权限的能力但是您仍然需要“获取”权限如果你想要的。在上面的示例中您可以调用getContentResolver().takePersistableUriPermission(treeUri,Intent.FLAG_GRANT_READ_URI_PERMISSION |Intent.FLAG_GRANT_WRITE_URI_PERMISSION);您可以随时通过ContentResolver.getPersistedUriPermissions()API找出您的应用可以访问的持久授权。如果您不再需要访问持久化Uri则可以使用ContentResolver.releasePersistableUriPermission()释放它。这是在KitKat吗不我们不能追溯地向平台的旧版本添加新功能。我可以看到哪些应用程序有权访问文件/文件夹目前没有显示此内容的UI但您可以在adb shell dumpsys活动提供程序输出的“Granted Uri Permissions”部分中找到详细信息。如果在同一设备上为多个用户安装了应用会发生什么情况Uri权限授予在每个用户的基础上隔离就像所有其他多用户平台功能一样。也就是说在两个不同用户下运行的同一个应用程序没有重叠或共享Uri权限授予。权限可以撤销吗支持DocumentProvider可以随时撤销权限例如删除基于云的文档时。发现这些撤消的权限的最常见方法是当它们从上面提到的ContentResolver.getPersistedUriPermissions()中消失时。当针对授权中涉及的任一应用程序清除应用数据时也会撤销权限。将要求在所选文件夹上递归授权工作吗是的ACTION_OPEN_DOCUMENT_TREE意图让您递归访问现有和新创建的文件和目录。这是否允许多重选择是的自KitKat以来支持多重选择并且您可以在启动ACTION_OPEN_DOCUMENT意图时通过设置EXTRA_ALLOW_MULTIPLE来允许它。您可以使用Intent.setType()或EXTRA_MIME_TYPES缩小可以选择的文件类型有没有办法在模拟器上尝试新的API是的主共享存储设备应该出现在选择器中甚至在模拟器上。如果您的应用程序只使用存储访问框架访问共享存储您不再需要READ / WRITE_EXTERNAL_STORAGE权限可以删除它们或使用androidmaxSdkVersion功能仅在较旧的平台版本上请求它们。当用户用另一个SD卡替换SD卡时会发生什么当涉及物理介质时底层媒体的UUID(例如FAT序列号)总是被烧录到返回的Uri中。系统使用它将您连接到用户最初选择的媒体即使用户在多个插槽之间交换媒体。如果用户在第二张卡中交换您需要提示您访问新卡。由于系统会记住基于每个UUID的授予如果用户以后重新插入您将继续先前授予对原始卡的访问权限。