zoukankan      html  css  js  c++  java
  • 92、App Permissions(权限管理)实例

    •Manifest权限声明
    •Permission Groups-权限组
    •权限的区分-安装时授权于运行时授权
    •撤销权限
    •检查、请求权限
    •在应用中如何合理的处理权限请求逻辑
     
    在AndroidManifest.xml中配置权限。
     <!-- 照相机权限 -->
     <uses-permission android:name="android.permission.CAMERA"/>
     1 public class MainActivity extends Activity {
     2 
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     7         setContentView(R.layout.activity_main);
     8 
     9         findViewById(R.id.txt_getcamera).setOnClickListener(new View.OnClickListener() {
    10             @Override
    11             public void onClick(View view) {
    12                 getCamera();
    13             }
    14         });
    15     }
    16 
    17     // 获取相机的方法
    18     private void getCamera() {
    19         // MNC 代表的就是 Android M 的版本号。
    20         if (Build.VERSION.CODENAME.equals("MNC")) {
    21             // 如果拥有权限的话
    22             if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
    23                 opCamera();
    24             } else {  // 如果没有权限,请求 照相机的 权限。
    25                 requestPermissions(new String[]{Manifest.permission.CAMERA}, 1);
    26             }
    27         } else {
    28             opCamera();
    29         }
    30     }
    31 
    32     // 选择相应的权限,系统会弹出一个对话框让用户选择权限,权限的结果返回,需要此回掉的方法。
    33     @Override
    34     public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    35         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    36 
    37         if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
    38             Toast.makeText(MainActivity.this, "已获取权限", Toast.LENGTH_SHORT).show();
    39             opCamera();
    40         } else {
    41             Toast.makeText(MainActivity.this, "您拒绝了我", Toast.LENGTH_SHORT).show();
    42         }
    43     }
    44 
    45     private void opCamera() {
    46         Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    47         startActivityForResult(intent, 1009);
    48     }
    49 
    50 }
  • 相关阅读:
    Android自定义Toast
    Unity Toast插件(UGUI版)
    Unity Sprite Packer 问题集合
    Unity相机平滑跟随
    Window下开启Jenkins服务
    谷歌浏览器在网页中看视频时,鼠标焦点一旦点击视频以外区域,视频就会暂停
    C# Random 生成不重复随机数
    Jquery ajax参数设置
    怎么拆分一个Excel工作簿中的多个工作表?
    SQLite可视化管理工具汇总
  • 原文地址:https://www.cnblogs.com/androidsj/p/5470344.html
Copyright © 2011-2022 走看看