[android] AndroidManifest.xml【 manifest -> uses-permission】

本文介绍如何使用<uses-feature>节点控制Google应用商店对APP的过滤规则,避免因依赖<uses-permission>而被错误过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在  API Level 1 时被引入

 

简介:

在某些情况下,你为app设置的权限将会影响到google应用商店会用何种规则来过滤你的APP。

如果你需要一个硬件相关的权限——CAMERA,google应用商店会假设你的应用程序需要底层硬件功能,从而过滤掉那些不需要提供设备的APP。

为了控制过滤,通常需要定义在<uses-feature>节点定义硬件属性,而不是依赖于google来通过<uses-permission>判断过滤规则。因此,如果你想要为一个特定的功能禁用过滤,你可以为<uses-feature>节点添加一个android:required="false" 属性。

 

语法: <uses-permission android:name="string" />

 

父节点:<manifest>

 

描述:定义的权限仅当其被正确授权时才生效,权限将在安装时被授权而不是在运行时。

 

属性:

android:name
权限的名称.是在 <permission>节点中被定义的。权限一般被另一个app定义,或者是标准的系统权限定义(如:android.permission.CAMERA)
由此看出,权限名一般以应用的包名称作为前缀
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hik.netsdk.SimpleDemo"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- <uses-permission--> <!-- android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"--> <!-- tools:ignore="ProtectedPermissions" />--> <!-- <uses-permission--> <!-- android:name="android.permission.READ_LOGS"--> <!-- tools:ignore="ProtectedPermissions" />--> <application > <activity android:name=".View.MainActivity" android:exported="true" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".View.VideoDecoder" /> <!-- 其他活动声明 --> <!-- <activity android:name=".View.BusinessUI.Fragment.FragTest2.FragTest2Activity" />--> <!-- <activity android:name=".View.DevMgtUI.AddDevActivity" />--> <!-- <activity android:name=".View.DevMgtUI.DevInfoActivity" />--> <!-- <activity android:name=".View.BusinessUI.Fragment.Preview.FragPreviewBySurfaceView" />--> <!-- <activity android:name=".View.BusinessUI.Fragment.Preview.FragPreviewByTextureView" />--> <!-- <activity android:name=".View.BusinessUI.Fragment.PlayBack.FragPlayBackByTime" />--> <!-- <activity android:name=".View.BusinessUI.Fragment.PlayBack.FragPlayBackByFile" />--> <!-- <activity android:name=".View.BusinessUI.Fragment.PlayBack.FragPlayBackTheSelectFile"></activity>--> </application> </manifest> 解决报错:`VideoDecoder` must extend android.app.Activity
06-23
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.isa.navi" android:sharedUserId="android.uid.system" android:versionCode="1" android:versionName="V0.9.0_20250621"> <!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />--> <!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />--> <!-- <uses-permission android:name="android.permission.INTERNET" />--> <!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />--> <!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />--> <!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />--> <!-- <uses-permission android:name="android.permission.USB_PERMISSION"/>--> <!-- <uses-permission android:name="android.permission.WAKE_LOCK" />--> <!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />--> <!-- <uses-permission android:name="android.permission.ACCESS_MAP_ISA"/>--> <application android:name="com.isa.navi.ui.ISANaviApplication" android:allowBackup="false" android:label="ISA-NaviService" android:supportsRtl="true" android:networkSecurityConfig="@xml/network_security_config" android:taskAffinity="" android:persistent="true" > <!-- android:debuggable="true" --> <service android:name="com.isa.navi.service.ISANaviService" android:directBootAware="true" android:exported="false"> <!-- android:permission="com.isa.permission.ACCESS"--> <!-- >--> <intent-filter> <action android:name="com.isa.intent.action.ISA_NAVI" /> <action android:name="com.isa.intent.action.ISA_NAVI_DEBUG" /> <action android:name="com.isa.intent.action.ISA_CARPLAY" /> </intent-filter> </service> <receiver android:name="com.isa.navi.BootCompleteReceive" android:directBootAware="true" android:exported="false" > <!-- 开机广播 --> <!-- <intent-filter>--> <!-- <action android:name="android.intent.action.BOOT_COMPLETED" />--> <!-- </intent-filter>--> <intent-filter android:priority="2147483647"> <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> </intent-filter> </receiver> <!-- <activity android:name=".ui.MainActivity">--> <!-- <intent-filter>--> <!-- <action android:name="android.intent.action.MAIN" />--> <!-- <category android:name="android.intent.category.LAUNCHER" />--> <!-- </intent-filter>--> <!-- </activity>--> <receiver android:name=".receiver.USBReceiver" android:exported="false"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.intent.action.MEDIA_MOUNTED"/> <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> <action android:name="android.intent.action.MEDIA_REMOVED"/> <data android:scheme="file"></data> </intent-filter> </receiver> </application> </manifest> 这个xml是什么
最新发布
07-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值