for*_*all 5 android android-manifest android-xml android-studio storage-access-framework
在http://developer.android.com/guide/topics/providers/document-provider.html#manifest上显示了如何在清单中注册自定义文档提供程序:
<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>
Run Code Online (Sandbox Code Playgroud)
此处需要此<intent-filter>元素,但Android Studio会抱怨:
此处不允许元素intent-filter
并且提供者元素的文档似乎也表明了这一点:
CAN CONTAIN:
<meta-data>
<grant-uri-permission>
<path-permission>
Run Code Online (Sandbox Code Playgroud)
这是Android Studio和文档错误还是我错过了什么?
您什么都不丢失;Android Studio和文档不正确。就像任何其他组件一样,提供者也可以通过意图匹配进行发现。
Android使用以下代码查找文档提供者:
意图i =新意图(DocumentsContract.PROVIDER_INTERFACE);
List <ResolveInfo>提供程序= packageManager.queryIntentContentProviders(i,0);
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |