Android6.0【執行時申請許可權】的分析
,#情景:
Android 6.0之後。
用法:
普通許可權在清單檔案中新增,危險許可權需要動態申請許可權。
例子:
比如開發中的,SD卡許可權的申請,電話的許可權,以及讀取聯絡人等方面的許可權申請。
如:
Intent.ACTION_DIAL,表示開撥號介面,不需要宣告許可權。
Intent.ACTION_CALL,是系統內建直接打電話動作,需要宣告許可權。
程式碼如下(清單檔案也要註明許可權CALL_PHONE):
/*
* Copyright (C) 2016, TP-LINK TECHNOLOGIES CO., LTD.
*
* MainCallActivity.java
*
* Description
*
* Author nongzhanfei
*
* Ver 1.0, 12/25/16, NongZhanfei, Create file
*/
package com.tplink.callphone;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainCallActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnMakeCall = (Button) findViewById(R.id.make_call);
btnMakeCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//進來就檢查請求的許可權是否被授權了,還未被授權就請求許可權。
if (ActivityCompat.checkSelfPermission(MainCallActivity.this,
Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED) {
requestCallPermission();
} else {
//同意則撥打電話
makeCall();
}
}
private void requestCallPermission() {
//請求的許可權的數量(可多個),請求碼,(便於區分不同時機的不同的許可權請求)。
requestPermissions(new String[]{Manifest.permission.CALL_PHONE}, 1);
}
});
}
private void makeCall() {
try {
//普通模式-直接撥打
Intent intent = new Intent(Intent.ACTION_CALL);
//普通電話
intent.setData(Uri.parse("tel:10086"));//如果想直接撥打110需要緊急模式,否這彈出撥號鍵盤
startActivity(intent);
} catch (SecurityException e) {
e.printStackTrace();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 1:
//返回的內容中,我們請求的許可權如果經過同意,就可以撥打電話
if (grantResults.length > 0 && grantResults[0] == getPackageManager().PERMISSION_GRANTED) {
makeCall();
} else {
Toast.makeText(this, "yout denied the permission", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
}
拓展:
如果把10086改成110,那麼就不會自動撥號了,只會彈出撥號介面,因為ACTION_CALL代表普通撥號。
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
所以需要注意以下資訊:
系統撥打電話可以呼叫action如下:
ACTION_CALL(普通),
ACTION_CALL_EMERGENCY (緊急電話),
ACTION_CALL_PRIVILEGED(系統專屬),
而普通應用要撥打電話只能呼叫ACTION_CALL。
相關推薦
Android6.0【執行時申請許可權】的分析
,#情景: Android 6.0之後。 用法: 普通許可權在清單檔案中新增,危險許可權需要動態申請許可權。 例子: 比如開發中的,SD卡許可權的申請,電話的許可權,以及讀取聯絡人等方面的許可權申請。 如: Intent.ACTION_DI
Android 6.0在執行時申請許可權解釋與例項
Android 6.0在執行時申請許可權 從android 6.0(API23)開始,當app執行時使用者授予使用者的許可權,而不是在安裝程式的時候。 系統許可權分為2種,分別為normal和dangerous. Normal permission:對於
Android6.0在執行時請求許可權
從 Android 6.0(API 級別 23)開始,使用者開始在應用執行時向其授予許可權,而不是在應用安裝時授予。此方法可以簡化應用安裝過程,因為使用者在安裝或更新應用時不需要授予許可權。它還讓使用者可以對應用的功能進行更多控制;例如,使用者可以選擇為相機
Android6.0的執行時許可權
聊一聊Android 6.0的執行時許可權 Android 6.0,代號棉花糖,自發布伊始,其主要的特徵執行時許可權就很受關注。因為這一特徵不僅改善了使用者對於應用的使用體驗,還使得應用開發者在實踐開發中需要做出改變。 沒有深入瞭解執行時許可權的開發者通常會有很多疑問,比如什麼是執行時
適配android6.0:執行時許可權檢查機制
前言 清明放假終於結束了,趕緊寫點東西來脈動回來。這是一篇偏概念性的文章,文字偏多,所以別捉急,慢慢看。 現在高版本的android系統市場佔有率提升的非常快,這依賴於智慧手機越來越便宜,越來越普遍,新手機一般都會搭載高版本的android系統,來豐富使用者
Android6.0及以上版本申請許可權講解
我們先來了解一個概念 在執行時請求許可權 從 Android 6.0(API 級別 23)開始,使用者開始在應用執行時向其授予許可權,而不是在應用安裝時授予。此方法可以簡化應用安裝過程,因為使用者在安裝或更新應用時不需要授予許可權。它還讓使用者可以對應用的功能進行更多控制;
Android6.0寫入儲存動態申請許可權
由於安卓6.0的限制,特殊許可權在AndroidManifest檔案中設定不起效果,需要在程式碼中動態設定。下面的程式碼是用於申請訪問或寫入儲存的許可權,如下圖.需要在AndroidManifest檔案中配置許可權。(必須) <uses-permission andro
Android 6.0的執行時許可權 批量申請
Android 6.0,代號棉花糖,自發布伊始,其主要的特徵執行時許可權就很受關注。因為這一特徵不僅改善了使用者對於應用的使用體驗,還使得應用開發者在實踐開發中需要做出改變。 沒有深入瞭解執行時許可權的開發者通常會有很多疑問,比如什麼是執行時許可權,哪些是執行時
Android6.0 讀寫SD卡許可權動態申請
轉自:http://bbs.csdn.net/topics/391985867 安卓6.0以上,進行了許可權管理 不止要在AndroidManifest.xml裡面新增許可權<uses-permission android:name="android.permiss
華為手機搭載android6.0讀取檔案時,需要手動檢測讀取許可權
// Storage Permissions private static final int REQUEST_EXTERNAL_STORAGE = 1; private static String
Android 6.0執行時獲取許可權詳解
最近在工作過程中會遇到,明明已經在AndroidManifest.xml中配置了許可權,但是就是沒有作用,百度了之後才發現現在在應用系統大於等於6.0的手機上面,需要動態的獲取許可權。就是當你需要這個許可權的時候,需要手機給使用者一個提示選擇是否同意開啟這個許
android studio 6.0以上執行時許可權
AlertDialog mPermissionDialog;/** * 不再提示許可權 時的展示對話方塊 */private void showPermissionDialog() { if (mPermissionDialog == null) { mPermissionDialog
Android6.0運行時權限(基於RxPermission開源庫)
art cti 將不 轉載 誤差 title 特殊 什麽是 roi 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 前言 在6.0以前的系統,都是權限一刀切的處理方式,只要用戶安裝,Manifest申請的權限都會被賦予,並且安裝後權限也撤銷不了。 And
【執行力決定命】第14集《職場五大溝通習慣》
執行力、職場、習慣、目標、升職、加薪「音頻原文」http://dwz.cn/6sB6v2大家好,我是林琳笨,今天跟大家一起分享《職場5大溝通習慣》,最近經常收到粉絲後臺留言,問我職場中如何溝通,我回想了下,至少有20種方法,今天和大家分享5個我認為比較重要的點。分別是:數字說話、直接回答問題、再次確認、每天通
【執行力決定命】第7集《不擇手段的達到目的》
職場、執行力、任務、目標、承諾、升職「音頻原文」http://dwz.cn/6sB0GA大家好,我是林琳笨,今天一起分享《不擇手段的達到目的》,這個話題與執行力的關系非常大,甚至說沒有這樣的心態,你很難到達目的。因為往往你挺累,但根本達不到目的,不是執行力強不強,是根本沒有執行力。但我有點尤預要不要分享這個話
【執行力決定命】第3集《好的職業習慣,讓執行力提高一倍》
職場、習慣、升職、培訓「音頻原文」http://dwz.cn/6sANwk大家好,我是林琳笨,今天和大家分享《好的職業習慣,讓執行力提高一倍》,先簡單的介紹8個職業習慣的特征,有機會把每一個點拿出來詳細講解。 第一個、做好時間管理日報習慣:做當天/時間段總結、查當天遺漏、做下個時間段或周期的計劃;建議關註一個
【執行力決定命】第5集《負能量者,請你滾出辦公室》
執行力、職場、負能量、「音頻原文」http://dwz.cn/6sAPsW大家好,我是林琳笨,今天一起分享的主題有臟話,不過我認為這樣更符合我接下來要講的內容。今天的主題叫《負能量者,請你滾出辦公室》。 為什麽把負能量話題放在《執行力決定命》專輯裏,因為負能量的人,幾乎不太可能執行力很強,他們把大量的時間用在
【執行力決定命】第8集《時間管理,讓工作和生活井井有條》
職場、手段、執行力、加薪、「音頻原文」http://dwz.cn/6sB211大家好,我是林琳笨,今天跟大家一起分享《時間管理,讓工作和生活井井有條》,這個話題不但和工作有關系,也和生活關系也很大。成功人士是事業有成,家庭照顧的很好,工作之余能陪家人過快樂的家庭生活,這不可能只是運氣,也未必是他非常的努力,大
【執行力決定命】第4集《有價值的額外貢獻,要建立在做好本職前提下》
執行力、職場、貢獻、工作「音頻原文」http://dwz.cn/6sAOCC大家好,我是林琳笨,今天一起分享《有價值的額外貢獻,要建立在做好本職前提下》先引用一個華為內部的故事:華為有個新員工,入職沒幾天,做了幾十頁的發展戰略書,打算交給任正非任總,他想就算做的不好,任總也能鼓勵我一下,沒想到任總直接把方案扔
【執行力決定命】第2集《老板開始喜歡你,帶著責任心開啟執行力》
執行力、職場、老板、晉升「音頻原文」http://dwz.cn/6sANwk大家好,我是林琳笨,今天和大家一起分享責任心的重要性,為什麽老板喜歡有責任心的人?甚至相親也一定要求對方是一個有責任心的人。所以本期話題我取名《老板開始喜歡你,帶著責任心開啟執行力》責任心的理論定義是:個人對自己和他人、對家庭和集體、