当前位置:首页 » 安卓系统 » android申请权限

android申请权限

发布时间: 2023-08-05 02:39:03

⑴ Android申请权限,拒绝、永久拒绝

例如

申请定位权限:

if (Build.VERSION.SDK_INT >=M && !hasPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {

    String[] permissions =new String[1];

    permissions[0] = Manifest.permission.ACCESS_COARSE_LOCATION;

    Log.e("TAG", "onRequestPermissionsResult 申请权限");

    //申请权限

    ActivityCompat.requestPermissions(this,       permissions,MY_LBS_PERMISSION_REQUEST_CODE);

}

//处理权限请求

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

if (requestCode ==MY_LBS_PERMISSION_REQUEST_CODE) {

boolean isAllGranted =true;

        for (int grant : grantResults) {

if (grant != PackageManager.PERMISSION_GRANTED) {

isAllGranted =false;

break;

            }

}

if (isAllGranted) {

Log.e("TAG", "onRequestPermissionsResult 同意");

        }else {

List notAsk =new ArrayList<>();

            for (String permission : permissions) {

Log.e("TAG", "onRequestPermissionsResult - 循环 -");

                if (!ActivityCompat.(this, permission)

&& ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {

notAsk.add(permission);

                }

}

if (notAsk.size() >0) {//拒绝不再提醒

                Log.e("TAG", "onRequestPermissionsResult 拒绝不再提醒");

            }else {

                 Log.e("TAG", "onRequestPermissionsResult 本次拒绝");

            }

}

}

}

/**

* 检查是否有某个权限

* @param context    context

* @param permission 权限

* @return true means has

*/

public static boolean hasPermission(Context context, String permission) {

return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;

}

⑵ 安卓权限详细介绍


安卓权限详细介绍
开发android程序的时候常常会设计到各种权限,程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求,各种权限说明如下:
android.permission.ACCESS_CHECKIN_PROPERTIES
允许读写访问”properties”或弊罩表在checkin数据库中,改值可以修改上传( Allows read/write accessto the “properties” table in the checkin database, to change valuesthat get uploaded)
android.permission.ACCESS_COARSE_LOCATION
允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to accesscoarse (e.g., Cell-ID, WiFi) location)
android.permission.ACCESS_FINE_LOCATION
允许一个程序访问精良位置(如GPS) (Allows an application to access fine (e.g.,GPS) location)
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
允许应用程序访问额外的位置提供命令(Allowsan application to access extra location provider commands)
android.permission.ACCESS_MOCK_LOCATION
允许程序创建模拟位置提供用于测试(Allows an application to create mock locationproviders for testing)
android.permission.ACCESS_NETWORK_STATE
允许程序访问有关GSM网络信息(Allowsapplications to access information about networks)
android.permission.ACCESS_SURFACE_FLINGER
允许程序使用SurfaceFlinger底层特性(Allows an application to useSurfaceFlinger’s low level features)
android.permission.ACCESS_WIFI_STATE
允许程序访问Wi-Fi网络状态信息(Allows applications to access information aboutWi-Fi networks)
android.permission.ADD_SYSTEM_SERVICE
允许程序发布系统级服务(Allows an application to publish system-levelservices).
android.permission.BATTERY_STATS
允许程序更新手机电池统计信息(Allows an application to update the collectedbattery statistics)
android.permission.BLUETOOTH
允许程序连接到已配衫闹对的蓝牙设备(Allowsapplications to connect to paired bluetooth devices)
android.permission.BLUETOOTH_ADMIN
允许程序发现和配对蓝牙设备(Allows applications to discover and pair bluetoothdevices)
android.permission.BRICK
请求能够禁用设备(非常危险)(Required to be able to disable the device (very*erous!).)
android.permission.BROADCAST_PACKAGE_REMOVED
允许程序广播一个提示消息在一个应用卜贺程序包已经移除后(Allows an application to broadcast anotification that an application package has been removed)
android.permission.BROADCAST_STICKY
允许一个程序广播常用intents(Allows an application to broadcast stickyintents)
android.permission.CALL_PHONE
允 许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认(Allows an application to initiate aphone call without going through the Dialer user interface for theuser to confirm the call being placed.)
android.permission.CALL_PRIVILEGED
允 许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认(Allows an application to callany phone number, including emergency numbers, without goingthrough the Dialer user interface for the user to confirm the callbeing placed)
android.permission.CAMERA
请求访问使用照相设备(Required to be able to access the camera device. )
android.permission.CHANGE_COMPONENT_ENABLED_STATE
允 许一个程序是否改变一个组件或其他的启用或禁用(Allows an application to change whether anapplication component (other than its own) is enabled or not. )
android.permission.CHANGE_CONFIGURATION
允许一个程序修改当前设置,如本地化(Allows an application to modify the currentconfiguration, such as locale. )
android.permission.CHANGE_NETWORK_STATE
允许程序改变网络连接状态(Allows applications to change network connectivitystate)
android.permission.CHANGE_WIFI_STATE
允许程序改变Wi-Fi连接状态(Allows applications to change Wi-Fi connectivitystate)
android.permission.CLEAR_APP_CACHE
允许一个程序清楚缓存从所有安装的程序在设备中(Allows an application to clear the caches ofall installed applications on the device. )
android.permission.CLEAR_APP_USER_DATA
允许一个程序清除用户设置(Allows an application to clear user data)
android.permission.CONTROL_LOCATION_UPDATES
允许启用禁止位置更新提示从无线模块(Allows enabling/disabling location updatenotifications from the radio. )
android.permission.DELETE_CACHE_FILES
允许程序删除缓存文件(Allows an application to delete cache files)
android.permission.DELETE_PACKAGES
允许一个程序删除包(Allows an application to delete packages)
android.permission.DEVICE_POWER
允许访问底层电源管理(Allows low-level access to power management)
android.permission.DIAGNOSTIC
允许程序RW诊断资源(Allows applications to RW to diagnostic resources. )
android.permission.DISABLE_KEYGUARD
允许程序禁用键盘锁(Allows applications to disable the keyguard )
android.permission.DUMP
允许程序返回状态抓取信息从系统服务(Allows an application to retrieve state mpinformation from system services.)
android.permission.EXPAND_STATUS_BAR
允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似windowsmobile中的托盘程序(Allows an application to expand or collapse thestatus bar. )
android.permission.FACTORY_TEST
作为一个工厂测试程序,运行在root用户(Run as a manufacturer test application,running as the root user. )
android.permission.FLASHLIGHT
访问闪光灯,android开发网提示htcDream不包含闪光灯(Allows access to the flashlight )
android.permission.FORCE_BACK
允许程序强行一个后退操作是否在顶层activities(Allows an application to force a BACKoperation on whatever is the top activity. )
android.permission.FOTA_UPDATE
暂时不了解这是做什么使用的,android开发网分析可能是一个预留权限.
android.permission.GET_ACCOUNTS
访问一个帐户列表在Accounts Service中(Allows access to the list of accounts inthe Accounts Service)
android.permission.GET_PACKAGE_SIZE
允许一个程序获取任何package占用空间容量(Allows an application to find out the spaceused by any package. )
android.permission.GET_TASKS
允 许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等(Allows an application toget information about the currently or recently running tasks: athumbnail representation of the tasks, what activities are runningin it, etc.)
android.permission.HARDWARE_TEST
允许访问硬件(Allows access to hardware peripherals. )
android.permission.INJECT_EVENTS
允 许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,android 开发网提醒算是hook技术吧(Allows anapplication to inject user events (keys, touch, trackball) into theevent stream and deliver them to ANY window.)
android.permission.INSTALL_PACKAGES
允许一个程序安装packages(Allows an application to install packages. )
android.permission.INTERNAL_SYSTEM_WINDOW
允许打开窗口使用系统用户界面(Allows an application to open windows that are foruse by parts of the system user interface. )
android.permission.INTERNET
允许程序打开网络套接字(Allows applications to open network sockets)
android.permission.MANAGE_APP_TOKENS
允 许程序管理(创建、催后、 z- order默认向z轴推移)程序引用在窗口管理器中(Allows an application tomanage (create, destroy, Z-order) application tokens in the windowmanager. )
android.permission.MASTER_CLEAR目前还没有明确的解释,android开发网分析可能是清除一切数据,类似硬格机
android.permission.MODIFY_AUDIO_SETTINGS
允许程序修改全局音频设置(Allows an application to modify global audiosettings)
android.permission.MODIFY_PHONE_STATE
允许修改话机状态,如电源,人机接口等(Allows modification of the telephony state _power on, mmi, etc. )
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允许挂载和反挂载文件系统可移动存储(Allows mounting and unmounting file systems forremovable storage. )
android.permission.PERSISTENT_ACTIVITY
允许一个程序设置他的activities显示(Allow an application to make its activitiespersistent. )
android.permission.PROCESS_OUTGOING_CALLS
允许程序监视、修改有关播出电话(Allows an application to monitor, modify, or abortoutgoing calls)
android.permission.READ_CALENDAR
允许程序读取用户日历数据(Allows an application to read the user’s calendardata.)
android.permission.READ_CONTACTS
允许程序读取用户联系人数据(Allows an application to read the user’s contactsdata.)
android.permission.READ_FRAME_BUFFER
允许程序屏幕波或和更多常规的访问帧缓冲数据(Allows an application to take screen shotsand more generally get access to the frame buffer data)
android.permission.READ_INPUT_STATE
允许程序返回当前按键状态(Allows an application to retrieve the current state ofkeys and switches. )
android.permission.READ_LOGS
允许程序读取底层系统日志文件(Allows an application to read the low-level systemlog files. )
android.permission.READ_OWNER_DATA
允许程序读取所有者数据(Allows an application to read the owner’s data)
android.permission.READ_SMS
允许程序读取短信息(Allows an application to read SMS messages.)
android.permission.READ_SYNC_SETTINGS
允许程序读取同步设置(Allows applications to read the sync settings)
android.permission.READ_SYNC_STATS
允许程序读取同步状态(Allows applications to read the sync stats)
android.permission.REBOOT
请求能够重新启动设备(Required to be able to reboot the device. )
android.permission.RECEIVE_BOOT_COMPLETED
允 许一个程序接收到 ACTION_BOOT_COMPLETED广播在系统完成启动(Allows an application toreceive the ACTION_BOOT_COMPLETED that is broadcast after thesystem finishes booting. )
android.permission.RECEIVE_MMS
允许一个程序监控将收到MMS彩信,记录或处理(Allows an application to monitor incomingMMS messages, to record or perform processing on them. )
android.permission.RECEIVE_SMS
允许程序监控一个将收到短信息,记录或处理(Allows an application to monitor incoming SMSmessages, to record or perform processing on them.)
android.permission.RECEIVE_WAP_PUSH
允许程序监控将收到WAPPUSH信息(Allows an application to monitor incoming WAP pushmessages. )
android.permission.RECORD_AUDIO
允许程序录制音频(Allows an application to record audio)
android.permission.REORDER_TASKS
允许程序改变Z轴排列任务(Allows an application to change the Z-order oftasks)
android.permission.RESTART_PACKAGES
允许程序重新启动其他程序(Allows an application to restart otherapplications)
android.permission.SEND_SMS
允许程序发送SMS短信(Allows an application to send SMS messages)
android.permission.SET_ACTIVITY_WATCHER
允许程序监控或控制activities已经启动全局系统中Allows an application to watch andcontrol how activities are started globally in the system.
android.permission.SET_ALWAYS_FINISH
允许程序控制是否活动间接完成在处于后台时Allows an application to control whetheractivities are immediately finished when put in the background.
android.permission.SET_ANIMATION_SCALE
修改全局信息比例(Modify the global animation scaling factor.)
android.permission.SET_DEBUG_APP
配置一个程序用于调试(Configure an application for debugging.)
android.permission.SET_ORIENTATION
允许底层访问设置屏幕方向和实际旋转(Allows low-level access to setting theorientation (actually rotation) of the screen.)
android.permission.SET_PREFERRED_APPLICATIONS
允 许一个程序修改列表参数PackageManager.addPackageToPreferred()和 PackageManager.removePackageFromPreferred()方法(Allows anapplication to modify the list of preferred applications with thePackageManager.addPackageToPreferred() andPackageManager.removePackageFromPreferred() methods.)
android.permission.SET_PROCESS_FOREGROUND

⑶ Unity在Android 6.0及以上版本弹出权限申请窗口的问题

Android 版本大于等于6.0(SDK版本大于等于23),权限需要应用自主申请,动态申请权限。

如果Unity做为Android的子模块,除了应用本身会有申请权限的弹窗之外,Unity也会自动弹出权限申请窗口。

关于Android平台Unity的权限说明。

网络权限(普通权限)、手机震动权限(普通权限)、定位权限(危险权限)、相机权限(危险权限)、录音权限(危险权限),如果危险权限没有被赋予,Unity运行时会对 危险权限重新申请 。

为了不影响用户体验,在确定Unity功能不需要上面危险权限的时候,可以在manifest中加入:

<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true"/>

保证用户体验 。

⑷ Android6.0动态权限申请步骤以及需要注意的一些坑

我的博客
我的博客:Android6.0动态权限申请步骤以及需要注意的一些坑

因为工作需要,简单研究了一下Android6.0权限申请,在Google提供的sample的基础上,写了一个简单的demo。算是自己的笔记吧,可能会比较混乱,主要是方便以后查看。后期有别的问题,随时更新~

(1)checkSelfPermission:检查是否拥有这个权限
(2)requestPermissions:请求权限,一般会弹出一个系统对话框,询问用户是否开启这个权限。
(3):在允许询问时返回true ; 在权限通过 或者权限被拒绝并且禁止询问时返回false ,如果从来没有询问过,也是返回的false, 所以单纯的使用去做什么判断,是没用的。。。 所以说这个地方有坑,我的解决方法是,在回调里面处理,如果用户拒绝了这个权限,则打开本应用信息界面,由用户自己手动开启这个权限。
(4)每个应用都有自己的权限管理界面,里面有本应用申请的权限以及各种状态,即使用户已经同意了你申请的权限,他也随时可以关闭

其实和申请一个权限是一样的,只是requestPermissions(final @NonNull Activity activity,
final @NonNull String[] permissions, final int requestCode),里面的permissions给的参数多些而已。

⑸ 安卓请求权限

有时候我们的应用需要读写sd卡,就需要android.permission.WRITE_EXTERNAL_STORAGE权限,但是它属于危险型权限。光在Manifest中配置还不够,你还需要运行时请求去用它们。
以下就以Mainfest.permission.WRITE_EXTERNAL_STORAGE为例,

1)检测是否拥有权限

2)如果没有权限就请求权限

requestPermission()是个异步请求方法,调用它之后,Android会弹出系统权限授权对话框要求用户反馈。
为响应用户操作,还需要重写onRequestPermissionResult()响应方法,用户点击 允许 或 拒绝 按钮后,Android就会调用这个方法。

然后我们在这个方法里检测是否拥有权限,如果有权限,就...。

如果你点击了 允许 按钮给予权限,除非卸载或关闭权限,应用会一直拥有该权限。如果选了拒绝,应用的授权只是暂时被否。下次要获取读写文件的话,可以继续用requestPermission()来请求权限。

⑹ android权限管理

从 Android 6.0 开始,按照是否需要动态申请分为 普通权限 特殊权限

特殊权限 需要程序运行时申请并通过之后才能使用,或者程序安装为系统应用或系统签名。

注意:

1、动态申请也需要在清单文件中配置(AndroidMenifest.xml)

2、权限是分组的,同一组的权限申请其中一个,同组的权限就全部都申请了

特殊权限共有 9 组:

9 组具体权限列表:

普通权限在清单文件配置(AndroidMenifest.xml)即可使用

(1)在 AndroidMenifest.xml 清单文件中申请

(2)单个申请

(2)批量申请

(3)回调处理

热点内容
编程课v 发布:2025-02-04 08:45:00 浏览:103
模拟器能有手机脚本么 发布:2025-02-04 08:39:50 浏览:755
android显示html图片 发布:2025-02-04 08:35:31 浏览:791
如何查学信网账号及密码 发布:2025-02-04 08:33:55 浏览:502
linux32位jdk 发布:2025-02-04 08:33:55 浏览:246
康佳服务器连接失败是怎么回事 发布:2025-02-04 08:18:51 浏览:916
编译编译有什么 发布:2025-02-04 08:05:52 浏览:735
让外网访问内网服务器 发布:2025-02-04 08:02:20 浏览:783
奶块脚本菜地 发布:2025-02-04 07:46:35 浏览:238
条形码识别源码 发布:2025-02-04 07:45:55 浏览:457