關(guān)于android權(quán)限的知識

普通權(quán)限餐蔬,直接獲得;

  1. 危險(xiǎn)權(quán)限有哪些佑附?短信樊诺、電話、通訊錄音同、地理位置词爬、攝像頭、讀存照片等瘟斜;
  2. 能否獲得權(quán)限的狀態(tài)缸夹?android6.0以上可以;
  3. 能否知道螺句,用戶點(diǎn)擊的“允許”還是“禁止”虽惭?23以上才能知道,低版本的不行蛇尚;
  4. 運(yùn)行時(shí)獲取權(quán)限芽唇,要求targetSdk>=23;

四個(gè)比較重要的API:

checkSelfPermission();  //檢查是否在已經(jīng)獲取權(quán)限
shouldShowRequestPermissionRationale();  //是否彈系統(tǒng)獲取權(quán)限的提示框
requestPermissions(); //獲取權(quán)限
onRequestPermissionsResult(); //回調(diào)

為了兼容低版本取劫,不用區(qū)分sdkVersion是否大于23匆笤,建議第1個(gè)使用ContextCompat.checkSelfPermission();中間2個(gè)谱邪,使用ActivityCompat炮捧;
6.0以上,拒絕時(shí)如果不選擇不再提醒惦银,每次都會彈出提示框咆课;6.0以下末誓,拒絕時(shí)不選擇不再提醒,只有重新打開app书蚪,才會再次彈出提示框喇澡;

sdk>=23 sdk<23
checkSelfPermission() 返回其該有的值 總是true
shouldShowRequestPermissionRationale() 第一次false,選擇不再提醒并拒絕后殊校,下次返回false 不起作用
requestPermissions() 可以是一組權(quán)限 不起作用
onRequestPermissionsResult(); 不會執(zhí)行

示例代碼:

@Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_my_camera);
       ButterKnife.bind(this);

       btn = (Button) findViewById(R.id.camera_btn);
       btn.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               int hasCameraPermission = ContextCompat.checkSelfPermission(activity, cameraStr);
               if (hasCameraPermission != PackageManager.PERMISSION_GRANTED) {
                   if (!ActivityCompat.shouldShowRequestPermissionRationale(activity, cameraStr)) {
                       new AlertDialog.Builder(activity).setMessage("reason for need camera").setPositiveButton("ok",null).show();
                       return;
                   }
                   ActivityCompat.requestPermissions(activity, new String[]{cameraStr}, 0);
                   return;
               }
               openCamera();    //android6.0以下的
           }
       });

   }

   //android6.0以下不會執(zhí)行
   @Override
   public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]
           grantResults) {
       super.onRequestPermissionsResult(requestCode, permissions, grantResults);
       if (permissions[0].equals(cameraStr)) {
           if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
               btn.setText("granted");
               openCamera();
           } else {
               btn.setText("denied");
           }
       }
   }

   private void openCamera(){
       Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
       startActivity(intent);
   }

推薦文章http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晴玖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子为流,更是在濱河造成了極大的恐慌呕屎,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艺谆,死亡現(xiàn)場離奇詭異榨惰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)静汤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門琅催,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人虫给,你說我怎么就攤上這事藤抡。” “怎么了抹估?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵缠黍,是天一觀的道長。 經(jīng)常有香客問我药蜻,道長瓷式,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任语泽,我火速辦了婚禮贸典,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘踱卵。我一直安慰自己廊驼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布惋砂。 她就那樣靜靜地躺著妒挎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪西饵。 梳的紋絲不亂的頭發(fā)上酝掩,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音眷柔,去河邊找鬼庸队。 笑死积蜻,一個(gè)胖子當(dāng)著我的面吹牛闯割,可吹牛的內(nèi)容都是我干的彻消。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宙拉,長吁一口氣:“原來是場噩夢啊……” “哼宾尚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谢澈,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤煌贴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锥忿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牛郑,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年敬鬓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淹朋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钉答,死狀恐怖础芍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情数尿,我是刑警寧澤仑性,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布镇草,位于F島的核電站馏艾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏氓拼。R本人自食惡果不足惜何陆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一晨汹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甲献,春花似錦宰缤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至球及,卻和暖如春氧骤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吃引。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工筹陵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刽锤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓朦佩,卻偏偏與公主長得像并思,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子语稠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

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