Android6.0權(quán)限

大家好,我是小帥,好久沒(méi)有更新博客了,哈哈,有點(diǎn)懈怠.今天帶給大家的是android6.0權(quán)限,話說(shuō)6.0都出來(lái)好久了,老手忽悠吧!我還是習(xí)慣喜歡上個(gè)效果圖!

adnroid6.0權(quán)限.gif

當(dāng)用戶拒絕權(quán)限的時(shí)候提示權(quán)限的處理,并且如何打開(kāi),中間的dialog可以自己定義.

6.0的運(yùn)行時(shí)權(quán)限,需要使用如下的API:
int checkSelfPermission(String permission) 用來(lái)檢測(cè)應(yīng)用是否已經(jīng)具有權(quán)限
void requestPermissions(String[] permissions, int requestCode) 進(jìn)行請(qǐng)求單個(gè)或多個(gè)權(quán)限
void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) 用戶對(duì)請(qǐng)求作出響應(yīng)后的回調(diào)

其實(shí)簡(jiǎn)單講就是對(duì)這幾個(gè)的API的使用,記住就行.還有一個(gè)問(wèn)題就是什么時(shí)候需要用到6.0權(quán)限,其實(shí)這里只需要記住危險(xiǎn)權(quán)限就行,下面小帥給大家準(zhǔn)備一張表,需要的拿去


危險(xiǎn)權(quán)限.jpg

左邊的是權(quán)限組,右邊的是權(quán)限組里面的權(quán)限,只要一次申請(qǐng)權(quán)限組里面的權(quán)限,對(duì)應(yīng)的權(quán)限組的權(quán)限也申請(qǐng)了.
好了,聊了那么久,還是直接上代碼吧,因?yàn)楦鞣N情況的都不一樣,所以這里簡(jiǎn)單的舉了個(gè)列子

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button mBtnMain;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }
    private void initView() {
        mBtnMain = (Button) findViewById(R.id.btn_main);
        mBtnMain.setOnClickListener(this);
    }

    private void callPhone() {
        //沒(méi)有授予權(quán)限
        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED) {
            //做權(quán)限處理,主要是申請(qǐng)權(quán)限
            ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CALL_PHONE},1);
        }else {
            doCallPhone();
        }
    }

    private void doCallPhone() {
        Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+"10086"));
        startActivity(intent);//代碼檢查工具,不需要處理
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_main:
                callPhone();
                break;
        }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            //申請(qǐng)了權(quán)限
            case 1:
            if (grantResults[0]== PackageManager.PERMISSION_GRANTED) {
                doCallPhone();
            }else {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("幫助")
                        .setMessage("當(dāng)前應(yīng)用缺少必要權(quán)限.請(qǐng)點(diǎn)擊'設(shè)置'-'權(quán)限',打開(kāi)所需權(quán)限.最后點(diǎn)擊兩次后退按鈕,即可返回")
                        .setCancelable(false)
                        .setPositiveButton("設(shè)置", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                                intent.setData(Uri.parse("package:" + getPackageName()));
                                startActivity(intent);
                            }
                        })
                        .setNegativeButton("退出", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                            }
                        }).show();
                AlertDialog alert = builder.create();
            }
            break;
        }
    }
}

記得去清單文件里面添加權(quán)限
** <uses-permission android:name="android.permission.CALL_PHONE" />**
其實(shí)有時(shí)候覺(jué)得6.0權(quán)限沒(méi)有必要做,但當(dāng)你手機(jī)是6.0的時(shí)候,你如果只寫(xiě)
doCallPhone()的邏輯代碼時(shí)候會(huì)得不到執(zhí)行.
當(dāng)然也可以有偷懶的方法了
你的應(yīng)用將targetSdkVersion設(shè)置低于23,那么在6.0的系統(tǒng)上不會(huì)為這個(gè)應(yīng)用開(kāi)啟運(yùn)行時(shí)權(quán)限機(jī)制扯旷,即按照以前的一刀切方式處理.
其他權(quán)限基本類型,有些手機(jī)比如小米,華為里面是定制版的Android,里面的dialog風(fēng)格是不一樣的,但實(shí)現(xiàn)原理不變,最后附上demo鏈接:
https://github.com/Chenshuai770/test_permision3.git
我是小帥,一起進(jìn)步

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蟹漓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子依溯,更是在濱河造成了極大的恐慌老厌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件黎炉,死亡現(xiàn)場(chǎng)離奇詭異枝秤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)慷嗜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門淀弹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丹壕,“玉大人,你說(shuō)我怎么就攤上這事薇溃【担” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵沐序,是天一觀的道長(zhǎng)琉用。 經(jīng)常有香客問(wèn)我,道長(zhǎng)薄啥,這世上最難降的妖魔是什么辕羽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮垄惧,結(jié)果婚禮上刁愿,老公的妹妹穿的比我還像新娘。我一直安慰自己到逊,他們只是感情好铣口,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著觉壶,像睡著了一般脑题。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铜靶,一...
    開(kāi)封第一講書(shū)人閱讀 49,950評(píng)論 1 291
  • 那天叔遂,我揣著相機(jī)與錄音,去河邊找鬼争剿。 笑死已艰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蚕苇。 我是一名探鬼主播哩掺,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼涩笤!你這毒婦竟也來(lái)了嚼吞?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蹬碧,失蹤者是張志新(化名)和其女友劉穎舱禽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體锰茉,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呢蔫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片片吊。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绽昏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俏脊,到底是詐尸還是另有隱情全谤,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布爷贫,位于F島的核電站认然,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏漫萄。R本人自食惡果不足惜卷员,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腾务。 院中可真熱鬧毕骡,春花似錦、人聲如沸岩瘦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)启昧。三九已至叙凡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間密末,已是汗流浹背握爷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留严里,地道東北人饼拍。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像田炭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漓柑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • Android在 6.0中摒棄了之前的install time permissions model取而代之的是ru...
    Pan_大寶閱讀 3,274評(píng)論 9 36
  • 如今的手機(jī)操作系統(tǒng)已經(jīng)到了8.0教硫,早在6.0的時(shí)候就有了權(quán)限的動(dòng)態(tài)申請(qǐng),危險(xiǎn)的權(quán)限在使用到的時(shí)候動(dòng)態(tài)申請(qǐng)辆布。...
    porten閱讀 970評(píng)論 0 0
  • 從6.0 MarshMallow開(kāi)始瞬矩,Android支持動(dòng)態(tài)權(quán)限管理,即有些權(quán)限需要在使用到的時(shí)候動(dòng)態(tài)申請(qǐng)锋玲,根據(jù)用...
    看書(shū)的小蝸牛閱讀 6,960評(píng)論 0 26
  • 以銅為鑒景用,可以正衣冠;以人為鑒,可以明得失伞插。 沒(méi)事就來(lái)想一想自己腦子中的想法割粮,高級(jí)一點(diǎn)的說(shuō)法,就是媚污,玩一玩元認(rèn)知舀瓢。...
    愛(ài)所有的一切閱讀 198評(píng)論 0 2
  • 文來(lái)著高哥視界 作者:高哥 吃完晚飯后,一歲半的女兒在手機(jī)上聽(tīng)兒歌耗美,老爸在手機(jī)上看搞笑視頻和雞湯味十足的段子京髓,媳婦...
    高哥視界閱讀 166評(píng)論 0 0