在 Android 应用中,android:authorities
属性是用于定义 ContentProvider
的唯一标识符的。尽管 androidx.startup.InitializationProvider
并不是用于文件共享的常规 FileProvider
,但它是一个特殊的 ContentProvider
,用于在应用启动时初始化库。然而,为 InitializationProvider
设置 android:authorities
的概念仍然适用,尽管这不是其常见用法。
不过,如果你确实想要为一个自定义的 ContentProvider
或者 FileProvider
在 AndroidManifest.xml
中设置 android:authorities
,下面是一个代码样例:
对于 FileProvider
:
xml复制代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.example.myapp"> | |
<!-- ... 其他配置 ... --> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:roundIcon="@mipmap/ic_launcher_round" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<!-- ... 其他组件 ... --> | |
<provider | |
android:name="androidx.core.content.FileProvider" | |
android:authorities="com.example.myapp.fileprovider" | |
android:exported="false" | |
android:grantUriPermissions="true"> | |
<meta-data | |
android:name="android.support.FILE_PROVIDER_PATHS" | |
android:resource="@xml/file_paths" /> | |
</provider> | |
</application> | |
</manifest> |
在上面的代码中,android:authorities
被设置为 "com.example.myapp.fileprovider"
,这是一个唯一的标识符,用于在应用间唯一标识这个 FileProvider
。同时,<meta-data>
标签引用了 res/xml/file_paths.xml
文件,该文件定义了 FileProvider
可以访问的文件路径。
对于 InitializationProvider
(虽然通常不需要设置 android:authorities
):
如果你确实想要为 InitializationProvider
设置 android:authorities
(尽管这不是常见做法,因为 InitializationProvider
不是为了在应用间共享数据而设计的),你可以这样做:
xml复制代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.example.myapp"> | |
<!-- ... 其他配置 ... --> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:roundIcon="@mipmap/ic_launcher_round" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<!-- ... 其他组件 ... --> | |
<provider | |
android:name="androidx.startup.InitializationProvider" | |
android:authorities="com.example.myapp.initprovider" <!-- 通常不需要 --> | |
android:exported="false"> | |
<!-- InitializationProvider 不需要 meta-data 标签 --> | |
</provider> | |
</application> | |
</manifest> |
但请注意,为 InitializationProvider
设置 android:authorities
通常是没有必要的,因为它不是用于应用间通信的。上述代码仅作为示例展示如何设置,但不建议在实际应用中使用。