1. 程式人生 > >Android動態申請許可權(撥打電話)

Android動態申請許可權(撥打電話)

Android許可權大全:

        Android許可權有上百個,那麼我們如何在呼叫許可權的時候,判斷app是否被授予某項許可權呢,所以這時候就需要動態去獲取許可權了,如果該許可權已被賦予,就能直接使用該功能,否則就需要去申請許可權。

        這裡只需要三個方法,就可以搞定以上的問題,我這裡將方法寫在BaseActivity中,需要的時候呼叫就可以了。

BaseActivity中的程式碼

    public static final int REQUEST_CALL_PERMISSION = 10111; //撥號請求碼

    /**
     * 判斷是否有某項許可權
     * @param string_permission 許可權
     * @param request_code 請求碼
     * @return
     */
    public boolean checkReadPermission(String string_permission,int request_code) {
        boolean flag = false;
        if (ContextCompat.checkSelfPermission(this, string_permission) == PackageManager.PERMISSION_GRANTED) {//已有許可權
            flag = true;
        } else {//申請許可權
            ActivityCompat.requestPermissions(this, new String[]{string_permission}, request_code);
        }
        return flag;
    }

    /**
     * 檢查許可權後的回撥
     * @param requestCode 請求碼
     * @param permissions  許可權
     * @param grantResults 結果
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case REQUEST_CALL_PERMISSION: //撥打電話
                if (permissions.length != 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {//失敗
                    Toast.makeText(this,"請允許撥號許可權後再試",Toast.LENGTH_SHORT).show();
                } else {//成功
                    call("tel:"+"10086");
                }
                break;
        }
    }

    /**
     * 撥打電話(直接撥打)
     * @param telPhone 電話
     */
    public void call(String telPhone){
        if(checkReadPermission(Manifest.permission.CALL_PHONE,REQUEST_CALL_PERMISSION)){
            Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse(telPhone));
            startActivity(intent);
        }
    }

子類Activity中的程式碼

在需要的地方直接呼叫call()方法:

call("tel:"+phone);

AndroidManifest中新增許可權

許可權是必不可少,不要忘記在專案清單檔案中新增許可權。

<uses-permission android:name="android.permission.CALL_PHONE"/>

結果:

相關推薦

Android動態申請許可權(撥打電話)

Android許可權大全:        Android許可權有上百個,那麼我們如何在呼叫許可權的時候,判斷app是否被授予某項許可權呢,所以這時候就需要動態去獲取許可權了,如果該許可權已被賦予,就能直接使用該功能,否則就需要去申請許可權。        這裡只需要三個方法,

android傳送簡訊填入手機號碼,6.0動態請求許可權撥打電話

//發簡訊填入號碼 Uri uri = Uri.parse("smsto:" + phone); Intent sendIntent = new Intent(Intent.AC

Android 動態申請 許可權 permission

文章目錄 1、單個許可權動態申請 1)檔案結構 2) 在 AndroidManifest.xml 新增許可權 3)在程式碼裡進行許可權檢查 和 申請 2

【舉例】Android動態申請許可權

寫在前面:對於新版本的Android,部分許可權必須手動向使用者發起請求並獲得允許後才能使用。關於這一部分的基礎知識,這裡就不詳述。大家可以自行百度去獲取。 相關知識: 【舉例】Android自定義Dialog——做出“確定/取消”的選擇 http://blog.cs

這可能是最直接的Android動態申請許可權程式碼

隨著SDK版本的升級。Android程式設計師避免不了需要把 targetSdkVersion 設定為>=23  這就避免不了涉及到動態申請許可權。 如果需要看理論的知識 請搜尋其它文章。如果想直接書寫程式碼和解決方式。請繼續: 當 targetSdkVe

Android 動態申請許可權(程式碼案例)

/** * 申請許可權 */ private void requestPermission() { List<String> permissions = new ArrayList<String>(); if (Build.VERS

Android 動態申請許可權

前言       Android M (6.0) 或以上的裝置,在使用涉及隱私的安全許可權時,需要動態申請,也就是targetSdkVersion大於等於23版本的需要在需要使用的時候申請對應的許可權。 需要動態申請的許可權       在這裡盜一下圖 程式碼示例

Android 動態申請許可權(AndPermission)

AndPermission AndroidStudio使用方法,gradle一句話遠端依賴 compile 'com.yanzhenjie:permission:1.0.8' Or Maven: <dependency> &l

Android-動態申請許可權-及開啟許可權設定

一: package com.vitamio.dome; /** * 許可權申請介面 再 Activity 中實現該介面 * 在 要申請許可權的Activity 中實現此介面 */ public interface PermissionInterface

Android動態申請SDcard許可權

Android6.0後必須使用動態申請SDcard許可權,否則會丟擲"java.io.FileNotFoundException"異常。 try { //檢測是否有寫的許可權 int permission = ActivityCompat.checkSelfPermission(

Android 6.0動態申請許可權時,許可權框閃一下就消失的問題;

Android 藍芽BLE開發需要位置許可權,不然掃描不到周圍的藍芽資訊; 位置許可權申請: if (Build.VERSION.SDK_INT < 23){return;} //判斷是否有許可權 if (ContextCompat.checkSelfPermis

Android動態申請Camera許可權應用閃退問題

問題:客戶反饋他們應用第一次開啟申請相機許可權,應用退出,需要第二次開啟。 分析:先寫一個簡單的應用測試下 測試結果:         應用在申請完相機許可權之後確實會被系統殺掉,日誌中打瞭如下日誌         Killing 8269:com.example.andro

Android動態申請許可權(API23以上需求)

1 package com.dragon.android.permissionrequest; 2 3 import android.Manifest; 4 import android.content.DialogInterface; 5 import android.co

android 6.0 動態申請許可權的基本方法和框架使用】

基本的使用: 先提供一下goog官方的學習文件: int selfPermission = ContextCompat.checkSelfPermission(Main2Activity.this, Manifest.permission.CA

android動態申請拍照獲取照片許可權

拍照並獲取照片需要的是拍照和讀寫sd卡許可權@Override public void clickCamera() { Log.d("roamer", "clickCamera"); if (PackageManager.PERMISSION_GRANTED

Android 6.0及以上系統動態申請許可權詳解

1.Android 許可權簡介 自從Android6.0釋出以來,在許可權上做出了很大的變動,不再是之前的只要在manifest設定就可以任意獲取許可權,而是更加的注重使用者的隱私和體驗,不會再強迫使用者因拒絕不該擁有的許可權而導致的無法安裝的事情,也不會再不徵求使用者授權

android 6.0, 7.0之動態申請許可權完美解決方案

android 7.0 動態申請許可權工具類 對於實際開發的程式原來說,對許可權申請肯定不會陌生.由於android 6.0 之後有些許可權不僅需要在 mainfest中註冊,

Android使用RxPermissions動態申請許可權

Android使用RxPermissions動態申請許可權 一、目標 1. 效果圖 2. 下載地址 二、功能設計 三、準備工作 四、組合起來 1. PermissionHe

Android 6.0動態申請許可權(一次申請多個)

Android一次申請多個動態許可權 昨天做一個錄音功能的程式,發現在開啟Mic的時候發生了程式崩潰,但是錯誤提示裡面居然沒有提示許可權禁止。  解決的方法有:1.手動去選擇“應用”–>“程式”–>找到那個程式新增許可權,後面程式就可以正常使用了 2.設定動態請

Android Kotlin 動態申請許可權

/** * 動態申請許可權 */ fun handlePermisson(){ // 需要動態申請的許可權 val permission