Android权限检查
2016-04-01 13:15
435 查看
private void checkPermissionType(){
if (Build.VERSION.SDK_INT >= 23) {
int result = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA);
Log.d(TAG, "checkPermissionType.result = " + result);
if (result != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA},
RequestPermissionCode);
}
} else {
PackageManager pkm = getPackageManager();
boolean has_permission = (PackageManager.PERMISSION_GRANTED == pkm.checkPermission("android.permission.CAMERA", "packageName"));
Log.d(TAG, "checkPermissionType.has_permission = " + has_permission);
if (!has_permission) {
Toast.makeText(this, "请开启使用摄像头功能!", Toast.LENGTH_SHORT).show();
finish();
}
}
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode){
case RequestPermissionCode:
if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "onRequestPermissionsResult success");
} else {
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
if (Build.VERSION.SDK_INT >= 23) {
int result = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA);
Log.d(TAG, "checkPermissionType.result = " + result);
if (result != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA},
RequestPermissionCode);
}
} else {
PackageManager pkm = getPackageManager();
boolean has_permission = (PackageManager.PERMISSION_GRANTED == pkm.checkPermission("android.permission.CAMERA", "packageName"));
Log.d(TAG, "checkPermissionType.has_permission = " + has_permission);
if (!has_permission) {
Toast.makeText(this, "请开启使用摄像头功能!", Toast.LENGTH_SHORT).show();
finish();
}
}
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode){
case RequestPermissionCode:
if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "onRequestPermissionsResult success");
} else {
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
相关文章推荐
- android点滴之标准SD卡状态变化事件广播接收者的注冊
- 由Android 65K方法数限制引发的思考
- Android-AutoComplete控件与MultiAutoComplete控件搜索匹配
- android TextView设置字过多长长度后面显示省略号失效
- 关于Android开发的40条优化建议
- android graphic(20)—java层OpenGL相关类
- Android跨进程通信
- 高效Android开发者必须知道的4个工具
- android Unable toexecute dex: method ID not in [0, 0xffff]: 65536问题
- Android性能优化之SparseArray与ArrayMap
- 跟着Google学Android —— 3.1 管好Activity的生命周期
- Android中实现虚线
- No permission to write APN settings: Neither user *** nor current process has android.permission.WRITE_APN_SETTINGS.
- Android Studio check update失败
- Android接口安全 - RSA+AES混合加密方案
- Android 数据库SQLite 写入SD卡的方法
- android 图片压缩 笔记
- 我的Android之路
- 浅谈Android Aidl 通讯机制
- Android develop tricks——整理自国外的一些Blog