Android 内容提供器---创建内容提供器(<provider>元素)

ContentProvider配置详解
本文详细介绍了Android中ContentProvider的配置方法,包括如何在应用程序清单文件中定义ContentProvider子类,设置授权、提供器类名及各种权限属性。此外还讲解了开启和控制属性以及一些信息属性的作用。
部署运行你感兴趣的模型镜像
像Activity和Service组件一样,ContentProvider子类必须在它的应用程序的清单文件中使用<provider>元素来定义。Android系统要从这个元素中获取以下信息:

1. 授权(android:authorities)

在系统中标识整个提供器的符号名。

2. 提供器类名(android:name)

这个类实现了ContentProvider抽象类。

3. 权限

指定其他应用程序要访问这个提供器的数据所必须有的权限的属性:

A.android.grantUriPermssions:临时权限标识;

B.android.permission:单一的提供器范围的读写权限;

C.android.readPermission:提供器范围的读权限;

D.android.writePermission:提供器范围的写权限。

权限和它们相应的属性在“实现内容提供器权限”一节中进行了详细的描述。

开启和控制属性

以下这些属性决定了Android系统以何种方式在什么时候启动提供器,以及提供器的处理特点和其他的一些运行时设置:

1. android:enabled:是否允许系统启动提供器的标识;

2. android:exported:是否允许其他的应用程序使用这个提供器的标识;

3. android:initOrder:这个提供器相对与相同进程中的其他提供器的启动顺序。

4. android:multiProcess:是否允许提供器跟调用它的客户端在同一进程中启动;

5. android:process:提供器应该运行的进程的名字;

6. android:syncable:指明提供器的数据是否要跟服务端的数据同步的标识。

在<provider>元素的开发指南专题中完整的介绍了这些属性。

信息属性

针对提供器的一个可选的图标和标签:

1. android:icon:包含了这个提供器的可描画的资源图标。这个图标显示在Setting>Apps>All的应用列表中提供器标签旁边。

2. android:label:描述提供器或它的数据的一个信息标签。这个标签显示在Setting>Apps>All的应用列表中。

在<provider>元素的开发指南专题中完整的介绍了这些属性。

注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。

如有兴趣请访问作者官方博客http://blog.youkuaiyun.com/FireOfStar

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" android:installLocation="preferExternal" android:compileSdkVersion="34" android:compileSdkVersionCodename="14" package="com.yuanwu.jixietwo" platformBuildVersionCode="34" platformBuildVersionName="14"> <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="34" /> <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" /> <!-- 查看网络连接 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 拥有完全的网络访问权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-feature android:glEsVersion="0x20000" /> <!-- 允许接收WLAN多播 --> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <!-- 控制振动 --> <uses-permission android:name="android.permission.VIBRATE" /> <!-- 修改或删除您共享存储空间中的内容 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" /> <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" /> <uses-permission android:name="com.android.vending.BILLING" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <application android:label="@string/app_name" android:icon="@mipmap/app_icon" android:extractNativeLibs="true"> <meta-data android:name="unity.builder" android:value="12370032558358" /> <activity android:theme="@style/UnityThemeSelector" android:name="com.unity3d.player.UnityPlayerActivity" android:exported="true" android:launchMode="singleTask" android:screenOrientation="landscape" android:configChanges="density|fontScale|keyboard|keyboardHidden|layoutDirection|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:hardwareAccelerated="false" android:resizeableActivity="false"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> <meta-data android:name="android.notch_support" android:value="true" /> </activity> <meta-data android:name="unity.splash-mode" android:value="2" /> <meta-data android:name="unity.splash-enable" android:value="true" /> <meta-data android:name="unity.launch-fullscreen" android:value="true" /> <meta-data android:name="unity.allow-resizable-window" android:value="false" /> <meta-data android:name="notch.config" android:value="portrait|landscape" /> <meta-data android:name="unity.build-id" android:value="a2f5cdfc-a9e0-4cfb-be1f-c67906e8f0bb" /> <meta-data android:name="com.google.android.play.billingclient.version" android:value="4.0.0" /> <activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.android.billingclient.api.ProxyBillingActivity" android:exported="false" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize" /> <activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.unity3d.services.ads.adunit.AdUnitActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:hardwareAccelerated="true" /> <activity android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:name="com.unity3d.services.ads.adunit.AdUnitTransparentActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:hardwareAccelerated="true" /> <activity android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:name="com.unity3d.services.ads.adunit.AdUnitTransparentSoftwareActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:hardwareAccelerated="false" /> <activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.unity3d.services.ads.adunit.AdUnitSoftwareActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:hardwareAccelerated="false" /> <activity android:name="bin.mt.file.content.MTDataFilesWakeUpActivity" android:exported="true" android:taskAffinity="com.yuanwu.jixietwo.MTDataFilesWakeUp" android:excludeFromRecents="true" android:noHistory="true" /> <provider android:name="bin.mt.file.content.MTDataFilesProvider" android:permission="android.permission.MANAGE_DOCUMENTS" android:exported="true" android:authorities="com.yuanwu.jixietwo.MTDataFilesProvider" android:grantUriPermissions="true"> <intent-filter> <action android:name="android.content.action.DOCUMENTS_PROVIDER" /> </intent-filter> </provider> </application> </manifest> 翻译一下什么意思
最新发布
09-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值