Android進(jìn)階之光——Android6.0新特性

Android 6.0新特性

Android6.0主要特性概述

  1. 應(yīng)用權(quán)限管理
  2. Android Pay
  3. 指紋支持
  4. Doze電量管理
  5. App Links
  6. Now on Tap

運(yùn)行時(shí)權(quán)限機(jī)制

Android6.0系統(tǒng)默認(rèn)為targetSdkVersion小于23的應(yīng)用授予了所申請(qǐng)的所有權(quán)限。

Normal Permissions 與 Dangerous Permission

Google將權(quán)限分為兩類(lèi):

  1. Normal Permissions:這類(lèi)權(quán)限不涉及用戶(hù)隱私伴嗡,是無(wú)須用戶(hù)進(jìn)行授權(quán)的簇爆。比如手機(jī)震動(dòng)、訪問(wèn)網(wǎng)絡(luò)等這些權(quán)限只需要再AndroidManifest.xml中簡(jiǎn)單聲明就好斜姥,安裝時(shí)就會(huì)授權(quán)个扰。無(wú)須每次使用時(shí)都檢查權(quán)限。而且用戶(hù)不能取消以上授權(quán)
  2. Dangerous Permission 一般會(huì)涉及用戶(hù)隱私精绎,需要用戶(hù)進(jìn)行授權(quán)
    Dangerous Permission是以分組的形式給出的祟霍,同一組的任何一個(gè)權(quán)限被授權(quán)了杏头,其他權(quán)限也自動(dòng)被授權(quán)。
  3. 實(shí)現(xiàn)支持運(yùn)行時(shí)權(quán)限
    下面通過(guò)一個(gè)打電話的例子來(lái)說(shuō)明如何支持運(yùn)行時(shí)權(quán)限沸呐。我們需要先設(shè)置build.gradle中的targetVersion大于23
android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.probuing.androidlight"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
  • Manifest.xml
    <uses-permission android:name="android.permission.CALL_PHONE"/>
  • Java
 private void callPhone() {
        //先檢查是否有打電話的權(quán)限
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
            //沒(méi)有打電話權(quán)限醇王,申請(qǐng)打電話權(quán)限
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, 1);
        } else {
            //已經(jīng)有權(quán)限 執(zhí)行打電話
            call();
        }
    }

    private void call() {
        Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:" + "10086"));
        startActivity(intent);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults) {
        if (requestCode==1) {
            if (grantResults[0]== PackageManager.PERMISSION_GRANTED) {
                //權(quán)限已經(jīng)獲取
                call();
            }else{
                Toast.makeText(this, "權(quán)限被拒絕", Toast.LENGTH_SHORT).show();
            }
            return;
        }
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }

如果沒(méi)有權(quán)限則彈出提示框進(jìn)行權(quán)限申請(qǐng),onRequestPermissionsResult就是申請(qǐng)權(quán)限的回調(diào)崭添,如果用戶(hù)選擇允許寓娩,則調(diào)用call方法,如果選擇拒絕就會(huì)執(zhí)行else彈出提示呼渣。如果選擇拒絕棘伴,則下一次還會(huì)彈出權(quán)限申請(qǐng)的提示框,這一次會(huì)多出一個(gè)選項(xiàng)徙邻。叫作 不在詢(xún)問(wèn)排嫌。如果我們勾選了該選項(xiàng),則下一次就不會(huì)彈出權(quán)限申請(qǐng)?zhí)崾究蜱掷纾侵苯诱{(diào)用onRequestPermissionResult淳地,回調(diào)結(jié)果為最后一次用戶(hù)的選擇

如何處理不再詢(xún)問(wèn)
如果用戶(hù)選擇了不在詢(xún)問(wèn)怖糊,那么每次我們調(diào)用需要訪問(wèn)該權(quán)限的API時(shí)都會(huì)失效。所以我們需要使用shouldShowRequestPermissionRationale方法颇象。這個(gè)方法幫助開(kāi)發(fā)者向用戶(hù)解釋權(quán)限情況伍伤,如果用戶(hù)選擇不在詢(xún)問(wèn),則shouldShowRequestPermissionRationale方法會(huì)返回false遣钳,這時(shí)候我們可以彈出提示框進(jìn)行提示

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扰魂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蕴茴,更是在濱河造成了極大的恐慌劝评,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倦淀,死亡現(xiàn)場(chǎng)離奇詭異蒋畜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)撞叽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)姻成,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人愿棋,你說(shuō)我怎么就攤上這事科展。” “怎么了糠雨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵才睹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我见秤,道長(zhǎng)砂竖,這世上最難降的妖魔是什么真椿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任鹃答,我火速辦了婚禮,結(jié)果婚禮上突硝,老公的妹妹穿的比我還像新娘测摔。我一直安慰自己,他們只是感情好解恰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布锋八。 她就那樣靜靜地躺著,像睡著了一般护盈。 火紅的嫁衣襯著肌膚如雪挟纱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天腐宋,我揣著相機(jī)與錄音紊服,去河邊找鬼檀轨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛欺嗤,可吹牛的內(nèi)容都是我干的参萄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼煎饼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼讹挎!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起吆玖,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤筒溃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后沾乘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體铡羡,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年意鲸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烦周。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怎顾,死狀恐怖读慎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情槐雾,我是刑警寧澤夭委,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站募强,受9級(jí)特大地震影響株灸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擎值,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一慌烧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸠儿,春花似錦屹蚊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至田晚,卻和暖如春嘱兼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贤徒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工芹壕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胃惜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓哪雕,卻偏偏與公主長(zhǎng)得像船殉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斯嚎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容