Android撥打電話許可權總結
android在6.0和6.0以上撥打電話的許可權宣告
/**
* 打電話
*
* @param phoneNumber
*/
protected void startCallPhone(String phoneNumber) {
this.phoneNuber = phoneNumber;
//判斷Android版本是否大於23
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int checkCallPhonePermission = ContextCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE);
if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE},
MY_PERMISSIONS_REQUEST_CALL_PHONE);
return;
} else {
callPhone(phoneNumber);
}
} else {
callPhone(phoneNumber);
// 檢查是否獲得了許可權(Android6.0執行時許可權)
if (ContextCompat.checkSelfPermission(mContext,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// 沒有獲得授權,申請授權
if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) mContext,
Manifest.permission.CALL_PHONE)) {
// 返回值:
// 如果app之前請求過該許可權,被使用者拒絕, 這個方法就會返回true.
// 如果使用者之前拒絕許可權的時候勾選了對話方塊中”Don’t ask again”的選項,那麼這個方法會返回false.
// 如果裝置策略禁止應用擁有這條許可權, 這個方法也返回false.
// 彈窗需要解釋為何需要該許可權,再次請求授權
TastyToastUtils.newInstance(mContext).ERROR("請授權");
// 幫跳轉到該應用的設定介面,讓使用者手動授權
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
} else {
// 不需要解釋為何需要該許可權,直接請求授權
ActivityCompat.requestPermissions((Activity) mContext,
new String[]{Manifest.permission.CALL_PHONE},
MY_PERMISSIONS_REQUEST_CALL_PHONE);
}
} else {
// 已經獲得授權,可以打電話
callPhone(phoneNumber);
}
}
}
private void callPhone(String phoneNumber) {
// 撥號:啟用系統的撥號元件 -- 直接撥打電話
//Intent intent = new Intent(); // 意圖物件:動作 + 資料
//intent.setAction(Intent.ACTION_CALL); // 設定動作
//Uri data = Uri.parse("tel:" + phoneNumber); // 設定資料
//intent.setData(data);
//startActivity(intent); // 啟用Activity元件
//開啟撥號介面,填充輸入手機號碼,讓使用者自主的選擇
Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+phoneNumber));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
// 處理許可權申請的回撥
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_CALL_PHONE: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 授權成功,繼續打電話
callPhone(this.phoneNuber);
} else {
// 授權失敗!
TastyToastUtils.newInstance(mContext).ERROR("授權失敗");
}
break;
}
}
}
注:在清單檔案中宣告CALL_PHONE許可權
<uses-permission android:name="android.permission.CALL_PHONE"/>
相關推薦
Android撥打電話許可權總結
android在6.0和6.0以上撥打電話的許可權宣告 /** * 打電話 * * @param phoneNumber */ protected void startCallPhone(String
Android撥打電話號功能
在本篇博文中將為大家提供兩種用程式碼實現調起電話簿,打電話功能,其實很簡單,只是新增一個許可權和一個方法的事 1、新增許可權 <uses-permission android:name="android.permission.CALL_PHONE" /> 2、調起撥號頁面,不
Android撥打電話工具類
歡迎關注技術公眾號,微訊號搜尋ColorfulCode 程式碼男人 分享技術文章,投稿分享,不限技術種類,不限技術深度,讓更多人因為分享而受益。 動態許可權框架使用的Acp,封裝撥打電話兩種常用模式,程式碼如下: public class CallPhoneU
解決Android6.0+撥打電話許可權問題
針對即使獲取了撥打電話的許可權依然報錯問題的解決方案 針對即使獲取了撥打電話的許可權依然報錯問題的解決方案 private static final int MY_PERMISSIONS_REQUE
Android撥打電話和發簡訊的簡單程式
在模擬器上實現打電話和發簡訊,另外還可以在命令列下或者可以利用Eclipse的ADT外掛的Emulator control實現,具體方法去如下。 命令列: 假設你現在開啟的模擬器的埠號(模擬器的標題欄上有)為5554。 1.開啟命令列,輸入telnet localhost
Android撥打電話
1. 新增許可權 這是由於撥打電話屬於手機底層的服務,與使用者隱私及通話費等相關,因此,程式必須取得相關許可權。 <uses-permission android:name="a
Android撥打電話等功能實現及其延伸
前言 專案中經常用到點選一個button,直接撥打電話的功能。今天就由此功能系統的記錄一下相關知識點。 一、撥打電話功能 有兩種方法: 第一種如下: Intent intent = new Intent(Intent.ACTION_CALL);
android 撥打電話 號碼判斷
AndroidManifest中新增打電話許可權 <uses-permission android:name="android.permission.CALL_PHONE"/> public class boda extends Activity
Android動態申請許可權(撥打電話)
Android許可權大全: Android許可權有上百個,那麼我們如何在呼叫許可權的時候,判斷app是否被授予某項許可權呢,所以這時候就需要動態去獲取許可權了,如果該許可權已被賦予,就能直接使用該功能,否則就需要去申請許可權。 這裡只需要三個方法,
android傳送簡訊填入手機號碼,6.0動態請求許可權撥打電話
//發簡訊填入號碼 Uri uri = Uri.parse("smsto:" + phone); Intent sendIntent = new Intent(Intent.AC
android呼叫撥打電話(包括執行時許可權)
/** * 撥打電話(跳轉到撥號介面,使用者手動點選撥打) * * @param phoneNum 電話號碼 */ public void diallP
Android動態許可權總結
從Android6.0開始,Android系統提供動態申請許可權的機制, APP在使用危險許可權時,需要使用者的授權才可進一步操作。 許可權申請方式 Android系統中許可權申請的方式有兩種,如下圖所示: 靜態申請 Android6.0以前的系統(API < 23)採用的這種方
unity+android:撥打電話
package com.luoyikun.call; import android.app.Activity; import android.app.Fragment; import android.content.Context; import androi
84.android 指定哪個SIM卡撥打電話
//第一步 許可權: <uses-permission android:name="android.permission.CALL_PHONE" /> //Activity裡使用: //撥號請求碼 public static final i
Android 使用者組許可權,SELinux心得總結
這裡要分兩個部分來說,一個是Linux許可權組的設定,一個是SELinux。 我們先不考慮SELinux。先單獨來說Linux許可權組。 因為要想對某個檔案進行操作(read,write,execute等),必須先滿足Linux許可權組的規則,然後再滿足SeLinux的a
Android許可權總結
訪問登記屬性 android.permission.ACCESS_CHECKIN_PROPERTIES ,讀取或寫入登記check-in資料庫屬性表的許可權 獲取錯略位置 android.pe
Android 實現直接撥打電話
撥打電話事件 Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:所要撥打的號碼"));
向Android虛擬機發送簡訊和撥打電話
Android的emulator是已經包含了gsm 模組,可以模擬電話與簡訊進行除錯(就不用花太多冤枉錢) 首先,肯定是開啟虛擬機器: emulator -avd XXXXXX -scale 0.8& 這兩個引數就不用說了,第一個是avd 名稱,第二個是
Android html5頁面撥打電話號碼發簡訊發郵箱
1. 撥打電話 在電話號碼前面可以加上 + (加號)表示國際號碼。如: 最常用WEB頁面JS實現一鍵撥號的電話撥打功能 例子: <ahref="tel:10086">10086</a> 使用wtai協議進行撥打電話 <ahref="
Android VOIP撥打電話機制分析
建立.aidl檔案 ISipService.aidl內容如下: [java] view plaincopyprint? /** * Copyright (C) 2010-2012 Regis Montoya (aka r3gis