1. 程式人生 > >以前接觸的兩個App中總結的知識

以前接觸的兩個App中總結的知識

沒有權限 ext ons round 應用 實用程序 攝像 權限 第一次

Δ兩個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中總結的知識