2017-09-02 93 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