5

http://developer.android.com/guide/topics/providers/document-provider.html#manifestで、マニフェストでカスタムドキュメントプロバイダを登録する方法を示している:意図要素Android: "ここで要素のインテントフィルタは許可されていません" <provider>の中に?

<manifest... > 
    ... 
    <uses-sdk 
     android:minSdkVersion="19" 
     android:targetSdkVersion="19" /> 
     .... 
     <provider 
      android:name="com.example.android.storageprovider.MyCloudProvider" 
      android:authorities="com.example.android.storageprovider.documents" 
      android:grantUriPermissions="true" 
      android:exported="true" 
      android:permission="android.permission.MANAGE_DOCUMENTS" 
      android:enabled="@bool/atLeastKitKat"> 
      <intent-filter> 
       <action android:name="android.content.action.DOCUMENTS_PROVIDER" /> 
      </intent-filter> 
     </provider> 
    </application> 

</manifest> 

この<インテントフィルタ>要素はここでは必要ですが、Androidのメーカーは、と不平を言いますフィルタはここでは許可されていません。

およびthe documentation for the provider elementは同様にそうであるように思われます。

CAN CONTAIN: 
<meta-data> 
<grant-uri-permission> 
<path-permission> 

これはAndroidスタジオとドキュメントのバグですか、何か不足していますか?

+0

:https://code.google.com/p/android/issues/detail?id=218872 – fornwall

+0

私は、バグレポートを主演、しかし歴史は、それは無視される可能性があります示唆しています。 Android向けに提出されたバグのほんの一部は、これまでのところ公式のコメントを得ている。 –

答えて

4

あなたは何も欠けていません。 Android Studioとドキュメントが正しくありません。プロバイダは、他のコンポーネントと同様に、インテントマッチングによって検出されます。

のAndroidは、このようなコードを使用して、文書プロバイダ見つける:

意向私は=新しいテント(DocumentsContract.PROVIDER_INTERFACE);を

リスト< ResolveInfo> providers = packageManager.queryIntentContentProviders(i、0);でバグとして報告

関連する問題