以前接触的两个App中总结的知识

Δ两个Activity之间跳转;

1 Intent i = new Intent(这个Activity的名字.this, 要跳转的Activity的名字.class);
2                 startActivity(i);

Δ获取某权限;

1 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.权限的名字},
2                     REQUEST_CAMERA_PERMISSION);

并在AndroidManifest设置;

1 <uses-permission android:name="android.permission.权限的名字" />

检测有无某权限;

1 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) //获取摄像头权限
2                 == PackageManager.PERMISSION_GRANTED) {
3         }

Δ完整的请求获取某权限过程;

 

if (ContextCompat.checkSelfPermission(CameraActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
            // 进入这儿表示没有权限
            if (ActivityCompat.shouldShowRequestPermissionRationale(CameraActivity.this, Manifest.permission.CAMERA)) {
                // 提示已经禁止
            } else {
                ActivityCompat.requestPermissions(CameraActivity.this, new String[]{Manifest.permission.CAMERA}, 100);
            }
        } else {
            mCamera = getCameraInstance();
        }

 

 

 

 

为了帮助查找用户可能需要解释的情形,Android 提供了一个实用程序方法,即 shouldShowRequestPermissionRationale()。如果应用之前请求过此权限但用户拒绝了请求,此方法将返回 true。

注:如果用户在过去拒绝了权限请求,并在权限请求系统对话框中选择了 Don’t ask again 选项,此方法将返回 false。如果设备规范禁止应用具有该权限,此方法也会返回 false。

根据测试shouldShowRequestPermissionRationale的返回值主要以下几种情况

第一次打开App时 false
上次弹出权限点击了禁止(但没有勾选“下次不在询问”) true
上次选择禁止并勾选:下次不在询问 false

 转载自:作者:cctcc 来源:CSDN 原文:https://blog.csdn.net/cctcc/article/details/79470514

 

 

 

Δ弹出某提示;

1 Toast.makeText(getApplicationContext(), "你要说的话",Toast.LENGTH_SHORT).show();
//第一个参数:当前的上下文环境,可用getApplicationContext()或this;
//第二个参数:你要说的话;
//第三个参数:显示的时间长短;

以前接触的两个App中总结的知识

上一篇:iOS 从零到一搭建组件化项目框架


下一篇:墨客原型系统——随笔分享APP