亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

安卓判斷系統相機授權狀態以及調用系統相機

2019-11-07 23:55:52
字體:
來源:轉載
供稿:網友

1、在項目中有可能使用到系統的相機,以及根據授權狀態做相應的處理, 2、在一開始我的項目里面沒有判斷相機的授權狀態,直接就調用了系統的相機功能,但是當我拒絕了授權使用相機之后,項目仍然可以調用相機并且可以正常使用(如果是自定義打開相機的話,可能會崩掉),但是考慮到用戶體驗,還是需要判斷一下授權狀態,沒有授權的話,就不用調用相機,下面是我的代碼,在這里備份一下:

3、判斷系統相機的授權狀態和打開系統相機

/** * 啟動相機,使用系統路徑存儲圖片(不需要自定義路徑,默認為Environment.DIRECTORY_PICTURES) * 返回存儲路徑 /storage/emulated/0/Pictures/1487908088865.jpg */ PRivate String startCameraWithSystemPath(Activity activity, int requestCode) { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { /* * @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == REQUEST_TAKE_PHOTO_PERMISSION) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //申請成功,可以拍照 } else { Toast.makeText(this, "CAMERA PERMISSION DENIED", Toast.LENGTH_SHORT).show(); } return; } super.onRequestPermissionsResult(requestCode, permissions, grantResults); } * */ // 沒有授權,可用申請授權或者提示信息 // 申請權限,REQUEST_CODE是自定義的常量,如果申請授權的話,需要重寫上面的onRequestPermissionsResult方法,但是好像不怎么管用(沒準確測試) // ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, REQUEST_CODE); Log.d("111", "沒有授權,請到應用設置界面手動打開權限"); return null; } else { // 已經權限 Log.d("111", "已經授權"); // 獲得sd卡的狀態信息 String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)) { // SDK可用 Intent intent = new Intent(); // 指定開啟系統相機的Action intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); File publicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); // 獲取系統SDK公共的文件夾路徑 if (!publicDirectory.exists()) { publicDirectory.mkdirs(); } File saveFile = new File(publicDirectory, System.currentTimeMillis() + ".jpg"); // 拼接存儲文件路徑 // 把文件地址轉換成Uri格式 Uri uri = Uri.fromFile(saveFile); Log.d("111", "getAbsolutePath=" + saveFile.getAbsolutePath()); // 設置系統相機拍攝照片完成后圖片文件的存放地址 intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); // 此值在最低質量最小文件尺寸時是0,在最高質量最大文件尺寸時是1 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); activity.startActivityForResult(intent, requestCode); return saveFile.getAbsolutePath(); // 返回絕對路徑(系統路徑) } else { // SDK不可用 Toast.makeText(activity, "請確認已經插入SD卡", Toast.LENGTH_LONG).show(); return null; } } }

調用方法獲取圖片的存儲路徑

private final static int REQUEST_CAMERA_CAPTURE_CODE = 3; // 相機回調codeprivate String cameraPath; // 存儲路徑// 調用cameraPath = startCameraWithSystemPath(MainActivity.this,REQUEST_CAMERA_CAPTURE_CODE); // 系統路徑

REQUEST_CAMERA_CAPTURE_CODE是自己定義的一個常量,用于標示activity,在調用系統相機之后,可以在回調函數中獲得圖片路徑:

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // requestCode:可以通過resultCode來判斷是哪一個activity的返回結果 if (resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_CAMERA_CAPTURE_CODE) { // 打開相機 Log.d("111", "path=" + cameraPath); Uri uri = Uri.fromFile(new File(cameraPath)); imageView.setImageURI(uri); } else if (requestCode == REQUEST_IMAGE_CAPTURE_CODE) { // 打開相冊 try { Uri uri = data.getData(); String path = uri.getPath(); String last = uri.getLastPathSegment();// final String absolutePath= getAbsolutePath(mActivity, uri); Log.d("111", "uri=" + uri); Log.d("111", "path=" + path + ",last=" + last); imageView.setImageURI(uri); } catch (Exception e) { e.printStackTrace(); } } } }

4、打開系統相冊,同樣在 public void onActivityResult(int requestCode, int resultCode, Intent data) {}中回調

public final static int REQUEST_IMAGE_CAPTURE_CODE = 1; // 相冊回調code// 調用startPhotoLibrary(REQUEST_IMAGE_CAPTURE_CODE); /* * 打開相冊 * */ private void startPhotoLibrary(int requestCode) { Intent intent = new Intent(Intent.ACTION_PICK, null); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, requestCode); }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产欧美一区二区三区成人| 亚洲精品aⅴ中文字幕乱码| 欧美一级大胆视频| 国产欧美日韩精品在线观看| 精品中文字幕在线| 欧美丰满少妇xxxxx做受| 亚洲精品国产精品国自产在线| 日本韩国欧美精品大片卡二| 亚洲韩国日本中文字幕| 日韩三级成人av网| 国产精品久久激情| 亚洲国产精品va在线观看黑人| 在线观看欧美日韩| 日韩欧美中文免费| 中文字幕亚洲一区二区三区五十路| 91视频8mav| 91地址最新发布| 久久人人97超碰精品888| 亚洲第一页中文字幕| 美女精品视频一区| 国产精品一区电影| 久久偷看各类女兵18女厕嘘嘘| 欧美电影免费观看高清完整| 欧美激情va永久在线播放| 国产极品jizzhd欧美| 亚洲男人的天堂在线| 2019中文在线观看| 91国内在线视频| 欧美做爰性生交视频| 蜜月aⅴ免费一区二区三区| 亚洲免费一在线| 91a在线视频| 日本成人精品在线| 亲爱的老师9免费观看全集电视剧| 久久久999精品视频| 欧美日韩亚洲视频| 伊人男人综合视频网| 亚洲人成电影网站色xx| 欧美激情一区二区三区高清视频| 久久精品成人一区二区三区| 免费91麻豆精品国产自产在线观看| 国产精品视频专区| 91久久国产精品91久久性色| 91免费国产网站| 日韩小视频网址| 日韩av手机在线看| 亚洲免费中文字幕| 成人精品久久av网站| 久久久97精品| 国产在线观看91精品一区| 日韩欧美999| 久久夜色撩人精品| 精品香蕉一区二区三区| 亚洲理论电影网| 亚洲国产婷婷香蕉久久久久久| 国产精品夜色7777狼人| 久久久精品日本| 91亚洲精品一区| 91麻豆国产语对白在线观看| 欧美美女操人视频| 国产精品高清在线观看| 欧美在线视频一二三| 欧美一区亚洲一区| 超薄丝袜一区二区| 亚洲电影免费观看高清完整版| 亚洲欧美国产精品久久久久久久| 性色av一区二区三区| 欧美色道久久88综合亚洲精品| 最新69国产成人精品视频免费| 欧美成人在线影院| 欧美成人高清视频| 国产精品视频在线观看| 精品国模在线视频| 中文字幕在线国产精品| 亚洲第一av网站| 国模吧一区二区三区| 国产精品中文久久久久久久| 日韩av手机在线看| 国产97在线观看| 欧美尺度大的性做爰视频| 日韩电影中文字幕| 欧美成人精品一区二区三区| 欧美黑人性视频| 黑人精品xxx一区一二区| 国产亚洲人成a一在线v站| 国产欧美久久一区二区| 91av视频导航| 日韩成人免费视频| 欧美在线欧美在线| 欧美成人免费小视频| 欧美成人四级hd版| 国产精品你懂得| 亚洲欧美综合精品久久成人| 欧美最猛性xxxxx免费| 综合网日日天干夜夜久久| 色综合久久中文字幕综合网小说| 亚洲免费视频网站| 亚洲天堂成人在线| 久久久久久高潮国产精品视| 欧美在线亚洲在线| 一区二区三区高清国产| 92版电视剧仙鹤神针在线观看| 亚洲品质视频自拍网| 97视频在线观看成人| 亚洲欧美综合图区| 国产亚洲激情视频在线| 亚洲国产私拍精品国模在线观看| 亚洲女人天堂视频| 日本aⅴ大伊香蕉精品视频| 亚洲精品自拍偷拍| 精品国产区一区二区三区在线观看| 色综合久久久888| 亚洲一区免费网站| 久久久亚洲欧洲日产国码aⅴ| 疯狂做受xxxx高潮欧美日本| 久久91亚洲人成电影网站| 精品一区二区电影| 国产精品一二区| 成人免费大片黄在线播放| 国产91在线高潮白浆在线观看| 亚洲国产成人在线视频| 97**国产露脸精品国产| 国产成人精品日本亚洲| 亚洲精品国产suv| 精品国产一区二区三区久久狼黑人| 亚洲欧洲激情在线| 日韩欧美a级成人黄色| 九九热这里只有精品免费看| 91精品啪在线观看麻豆免费| 97精品国产91久久久久久| 国产精品久久久久高潮| 国产91精品网站| 欧美一级黄色网| 日韩黄色av网站| 国产一区二区三区18| 国产精品成人aaaaa网站| 国产成人一区二区三区电影| 欧美大片免费观看在线观看网站推荐| www.美女亚洲精品| 国产黑人绿帽在线第一区| 亚洲性夜色噜噜噜7777| 久久精视频免费在线久久完整在线看| 国产一区二区久久精品| 奇米成人av国产一区二区三区| 伊人久久精品视频| 一区二区三区视频免费在线观看| 日韩欧美在线一区| 成人国产精品一区| 亚洲大胆美女视频| 日韩激情av在线免费观看| 欧美激情中文字幕在线| 日韩欧美在线视频观看| 欧美精品一区三区| 欧美激情一区二区久久久| 最近更新的2019中文字幕| 欧美性猛交xxxx富婆| 色播久久人人爽人人爽人人片视av| 精品久久久久久中文字幕| 中文字幕久热精品在线视频| 韩国19禁主播vip福利视频| 亚洲美女视频网| 国产精品色婷婷视频| 亚洲精品福利免费在线观看| 秋霞成人午夜鲁丝一区二区三区|