Android 6.0调用相机图册崩溃的完美解决方案
作者:天外野草 发布时间:2022-10-13 02:00:39
标签:android,调用,相机
最近客户更新系统发现,以前的项目在调用相机的时候,闪退掉了,很奇怪,后来查阅后发现,Android 6.0以后需要程序授权相机权限,默认会给出提示,让用户授权,个人感觉这一特性很好,大概如下:
导入Android V4, V7包!
Android Studio 导入很简单,右键项目后找到dependency就ok了。
继承AppCompatActivity
public class MainActivity extends AppCompatActivity
引入需要的类库
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
检查相机权限,并请求权限
// BEGIN_INCLUDE(camera_permission_request)
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.CAMERA)) {
// Provide an additional rationale to the user if the permission was not granted
// and the user would benefit from additional context for the use of the permission.
// For example if the user has previously denied the permission.
Log.i(TAG,
"Displaying camera permission rationale to provide additional context.");
Snackbar.make(mLayout, R.string.permission_camera_rationale,
Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CAMERA},
REQUEST_CAMERA);
}
})
.show();
} else {
// Camera permission has not been granted yet. Request it directly.
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA},
REQUEST_CAMERA);
}
// END_INCLUDE(camera_permission_request)
授权后接收回调方法:
/**
* Callback received when a permissions request has been completed.
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == REQUEST_CAMERA) {
// BEGIN_INCLUDE(permission_result)
// Received permission result for camera permission.
Log.i(TAG, "Received response for Camera permission request.");
// Check if the only required permission has been granted
}
}
混合应用开发解决方案
对于混合应用开发,有两种解决方案:
更改现有插件,添加权限访问代码(可能有有些麻烦)
调用权限插件:
安装:
cordova plugin add cordova-plugin-android-permissions@0.10.0
包含的权限
// Example
permissions.ACCESS_COARSE_LOCATION
permissions.CAMERA
permissions.GET_ACCOUNTS
permissions.READ_CONTACTS
permissions.READ_CALENDAR
...
示例代码
var permissions = cordova.plugins.permissions;
permissions.hasPermission(permissions.CAMERA, checkPermissionCallback, null);
function checkPermissionCallback(status) {
if(!status.hasPermission) {
var errorCallback = function() {
console.warn('Camera permission is not turned on');
}
permissions.requestPermission(
permissions.CAMERA,
function(status) {
if(!status.hasPermission) errorCallback();
},
errorCallback);
}
}
以上所述是小编给大家介绍的Android 6.0调用相机图册崩溃的完美解决方案网站的支持!
来源:http://blog.csdn.net/jiangbo_phd/article/details/52613463


猜你喜欢
- 使用代码特别注意 :拼接条件时,所使用到的条件strID,strBir必须是独立的var predicate = PredicateBuil
- 现在,汽车的踪影无处不在,公路上疾驰,大街边临停,小区中停靠,车库里停泊。管理监控如此庞大数量的汽车是个头疼的问题。精明的人们把目光放在车牌
- 前段时间由于VSS上的一个项目要给2个公司开发使用,而2个公司的需求不同 就把该项目复制到VSS上的另外一个目录,结果在别人的电脑取出并打开
- tomcat中文乱码问题这几天测试的兄弟发现了项目中存在乱码问题 经过排查发现是tomcat中的问题 于是在server.xml中添加了如下
- 一.话题引入在做项目过程中,我们一般都是最先编写登录注册功能,登录功能最重要的是登录成功后,系统还会保存该登录用户信息,这种保存用户信息的逻
- 从大学就开始做C#这块,也做C#几年了,最近又从ios转回.Net,继续做C#,之前也没有写博客的习惯,写博客也是从我做ios的时候开始的,
- 一、背景介绍最近在项目中遇到一个需求,实现一个后台拍照的功能。一开始在网上寻找解决方案,也尝试了很多种实现方式,都没有满意的方案。不过确定了
- 1. SpringBoot ResponseBody 返回值中null值处理@PostMapping(path = "/test&
- 仿QQ侧滑删除效果图1.自定义listviewpublic class DragDelListView extends ListView {
- 1、问题我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是1)、获取包名打开当前运行的app,然后输入
- eclipse汉化包我们会经常用到,因为它可以帮助英语基础差的用户更快的掌握这个软件,非常方便,但是我看了下整个互联网上并没有对这个汉化包进
- 使用HttpServletRequest可以防止盗链行为,什么是盗链行为,比如说在一个别的网站上超链接,指向我们的网页中的某个数据,这样从他
- 1、接口:接口与抽象类一样,也是表示某种规则,一旦使用了该规则,就必须实现相关的方法。对于C#语言而言,由于只能继承自一个父类,因此若有多个
- 1 低层级 asyncio 索引低层级 API 索引¶ 列出所有低层级的 asyncio API。1.1 获取事件循环获取
- WPF下给ComboBox设置绑定字段时可通过如下设置:combobox.SelectedValuePath = "编号"
- 一、Jackson简介说明:本篇讲的是Jackson的详细用法,Jackson工具类在文章最后,直接复制粘贴即可使用。 Jackson是公司
- //FilterKalman.csnamespace FusionFiltering{public class FilterKalman &
- 最近总是有人来和我说我以前写的一个小app无法正常获取数据~Android简易版天气预报app 今天就又运行了下来查找问题,发现或许是接口有
- 最近遇到一个需求需要圆形listview作为悬浮窗,费了九牛二虎之力终于开发出来了,特别有成就感,下面分享下案例,项目原因,只能分享一部分供
- 本文实例讲述了C#实现自定义windows系统日志的方法。分享给大家供大家参考。具体实现方法如下:using System;using Sy