2017-09-02 55 views
0

如何检查从可移动sd卡获取从action_open_document树选择的Uri用户? 我检查这一点,但其主要的SD卡和可移动SD卡相同! 还有其他方法吗?检查一个uri是否来自可移动存储

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

    String id=DocumentsContract.getTreeDocumentId(uri); 

        Uri mainuri=DocumentsContract.buildDocumentUriUsingTree(uri,id); 


        grantUriPermission(G.context.getPackageName(), uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 

      if( "com.android.externalstorage.documents".equals(uri.getAuthority())){ 

// its return true for primary and removable sd card !! 


} 

回答

1

号有没有要求从存储提供商Uri以任何方式识别。您的假设(对某个存储提供商而言,授权是com.android.externalstorage.documents)在任何Android设备上都不一定是正确的。设备制造商可以提供自己的存储提供商,并拥有自己的Uri结构。

+0

有什么方法可以确定用户选择的可移动存储? – Mostafa

+0

@Mostafa:正如我写的,没有。而且,你的应用程序不应该在意。如果您使用的是存储访问框架,请平等对待所有存储提供商。 – CommonsWare