Android 权限查寻表
1.在Mainifest.xml中添加
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:dist="http://schemas.android.com/apk/distribution"
- package="com.example.ble">
- <dist:module dist:instant="true" />
- <uses-permission android:name="android.permission.BLUETOOTH"/>
- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
- <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
- <application
- android:allowBackup="true"
- android:icon="@mipmap/bluetooth"
- android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity android:name=".MainActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
2.在activity中申请
- private boolean checkPermissions(){
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
- String[] permissions = {
- Manifest.permission.BLUETOOTH,
- Manifest.permission.BLUETOOTH_ADMIN,
- Manifest.permission.ACCESS_COARSE_LOCATION,
- Manifest.permission.ACCESS_FINE_LOCATION,
- };
- final int BLE_PERMISSION = ;
- int permissionCheck = ;
- for (String permission : permissions){
- permissionCheck += checkSelfPermission(permission);
- }
- if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
- requestPermissions(permissions,BLE_PERMISSION);//requestPermissions是Activity中的api
- return false;
- }
- }
- return true;
- }
- @RequiresApi(api = Build.VERSION_CODES.M)
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- final int BLE_PERMISSION = ;
- if (requestCode == BLE_PERMISSION && grantResults != null) {
- boolean ret = true;
- for (int result : grantResults){//检查所有权限
- if (result != PackageManager.PERMISSION_GRANTED){
- ret = false;
- break;
- }
- }
- if (ret) { //所有权限申请成功。
- setupBLE();
- } else {
- ret = shouldShowRequestPermissionRationale(permissions[]);
- Log.e("MainActivity", "onRequestPermissionsResult: result = " + ret );
- }
- }
- }
3.在Fragment中申请
3.1申请多权限
- private fun checkPermissions(): Boolean {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- val permissions = arrayOf(
- Manifest.permission.WRITE_EXTERNAL_STORAGE
- )
- val PERMISSION_CODE =
- var permissionCheck =
- if (context == null ) return false
- for (permission in permissions) {
- var check : Int? = context?.checkSelfPermission(permission)
- if (check != null) {
- permissionCheck += check
- }else{
- return false
- }
- }
- if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
- requestPermissions(permissions, PERMISSION_CODE)
- return false
- }
- }
- return true
- }
- @RequiresApi(api = Build.VERSION_CODES.M)
- override fun onRequestPermissionsResult(
- requestCode: Int,
- permissions: Array<String>,
- grantResults: IntArray
- ) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults)
- val PERMISSION_CODE =
- if (requestCode == PERMISSION_CODE && grantResults != null) {
- var ret =
- for (result in grantResults) {//检查所有权限
- ret += result
- if (result != PackageManager.PERMISSION_GRANTED) {
- break
- }
- }
- if (ret == ) { //所有权限申请成功。
- parseJson("test.json")
- }
- }
- }
3.2 申请单个权限
- @OnClick(R.id.btn_analy_import)
- public void onImportClicked(View view){
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
- final int permissionID = ;
- int write = getActivity().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
- if (write != PackageManager.PERMISSION_GRANTED) {
- String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
- requestPermissions(permissions, permissionID);//fragment基类中的函数
- }else{
- //业务函数
- }
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- Log.e("CompareFrgmt", "onRequestPermissionsResult: requestCode = " + requestCode );
- final int permissionID = ;
- if (requestCode == permissionID && grantResults != null) {
- if (grantResults[] == PackageManager.PERMISSION_GRANTED) {
- //业务函数
- } else {
- Snackbar.make(operatorPager, R.string.err_permission_denied,Snackbar.LENGTH_LONG).show();
- }
- }
- }
Android 权限查寻表的更多相关文章
- android 权限大全
教程 博客 淘帖 论坛›eoe·Android开发资源区›Android开发实例教程 191507 12 / 2 页下一页 android 权限大全 『癲瘋霸気』 于 2013-4-3 10: ...
- Android权限列表permission说明
网络上不乏android权限列表,但是很少有将列表和使用方法放在一起的,所以特此总结一下 需要在AndroidManifest.xml中定义相应的权限(以获取internet访问权限为例),如下: & ...
- android权限列表
原文:[转]android权限列表 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略 ...
- Android Permission denied 错误 ( 附Android权限大全 )
Android Permission denied 错误(附Android权限大全) java.net.SocketException: Permission denied (maybe missin ...
- Android权限操作之uses-permission详解
本文实例讲述了Android权限操作之uses-permission.分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android ...
- Android权限说明 system权限 root权限
原文链接:http://blog.csdn.net/rockwupj/article/details/8618655 Android权限说明 Android系统是运行在Linux内核上的,Androi ...
- android权限大全转http://www.cnblogs.com/classic/archive/2011/06/20/2085055.html
android权限大全转http://www.cnblogs.com/classic/archive/2011/06/20/2085055.html 访问登记属性 android.permission ...
- Android笔记(七十三) Android权限问题整理 非常全面
Android权限系统非常庞大,我们在Android系统中做任何操作都需要首先获取Android系统权限,本文记录了所有的Android权限问题,整理一下分享给大家. 访问登记属性 android.p ...
- MTK Android 权限大全
Android权限大全 1.android.permission.WRITE_USER_DICTIONARY允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SY ...
随机推荐
- Android 布局 中实现适应屏幕大小及组件滚动
要实现如图的布局: 这是在eclipse可视化窗口中的截图,但实际运行在Android设备上可能出现的问题有: (1):当编辑图1中的最后一个EditText时,输入法的编辑界面会把底部的Button ...
- c# 两个数组比较,将重复部分去掉,返回不重复部分
List<string> Ashuzu = new List<string>(); Ashuzu.Add("); Ashuzu.Add("); List&l ...
- js-shortid:优雅简洁地实现短ID
短ID在实际运用中很广泛, 其中比较典型的运用就是短地址. 市面上肯定有不少开源的生成短ID库, 基于node.js的估计也不少. 鉴于本人已然是node.js的脑残粉(本职java开发), 很多业余 ...
- js替换字符串的所有示例代码
js如何替换字符串中所有. /** * 替换字符串中所有 * @param obj 原字符串 * @param str1 替换规则 * @param str2 替换成什么 * @return 替换后的 ...
- GIS业务逻辑
三维怎么加载数据文件? OpenFileDialog frm = new OpenFileDialog(); frm.Filter = "文件数据集|*.tile|多时相数据集|*.Temp ...
- EXTJS4.2 后台管理菜单栏
EXTJS 代码: 第一种方法: { title: '汽车信息管理', layout: 'fit', items: [ { xtype: 'treepanel', border: 0, rootVis ...
- springside springmvc 的一个SB问题
<form id="inputForm" modelAttribute="order" action="${ctx}/myorder/orde ...
- Win2003+iis6部署MVC4网站的方法
1.服务器上安装SP2 和 IIS6 2.安装.Net Framework3.5 SP1(完整安装包,包含2.0 2.0SP1,237MB那个安装包) 3.安装.Net Framework4.0 4. ...
- 搭建 Android 开发环境,初试HelloWorld (win7) (下) (转)
5. 创建AVD 为使Android应用程序可以在模拟器上运行,必须创建AVD. 在Eclipse菜单中,选择 Windows -> Android Virtual Device Manage ...
- 用IDEA调试Play工程
IDEA的版本是14.0.1,运行在MAC OS X Yosemite上. IDEA已经装了Scala插件,但是在新建工程中,Scala的选项中并没有Play框架,不知道什么原因. 导入Play工程 ...