当前位置: 首页 > news >正文

sem优化操作/浙江seo关键词

sem优化操作,浙江seo关键词,自己开发购物网站,wordpress获取twitter内容开发过程当中遇到一个问题,就是好好的app在Android6.0系统的五儿子里进去就闪退,看了一下logcat表明时WRITE_EXTERNAL_STORAGE权限获取不到造成的,but在AndroidManifest文件当中已经添加了该权限,只能猜测在6.0的机子上无法使用配…

开发过程当中遇到一个问题,就是好好的app在Android6.0系统的五儿子里进去就闪退,看了一下logcat表明时WRITE_EXTERNAL_STORAGE权限获取不到造成的,but在AndroidManifest文件当中已经添加了该权限,只能猜测在6.0的机子上无法使用配置文件中的权限了,于是去setting里面把application的权限手动开启试了一下,app就正常了。因此去趴了Android的官方文档,https://developer.android.com/intl/zh-cn/training/permissions/requesting.html。原来,系统升上6.0以后一些dangerous级别的权限已经无法在app安装时授权了,需要用户在使用过程中碰到了由用户主动授权才行。

Beginning in Android 6.0 (API level 23), users grant permissions to apps while the app is running, not when they install the app. This approach streamlines the app install process, since the user does not need to grant permissions when they install or update the app.

在系统权限当中,分为normal和dangerous两个级别,可以简单理解为不获取隐私的权限,如INTERNET、VIBRATE等权限为normal级别的,这些只需在AndroidManifest文件里设置就OK了,但涉及到用户隐私如相机CAMERA、文件存储WRITE_EXTERNAL_STORAGE、地理位置LOCATION等dangerous级别时,在6.0系统时就无法直接设置了。具体两个类别的系统权限可以参考:https://developer.android.com/intl/zh-cn/guide/topics/security/permissions.html#normal-dangerous Anyway要在marshmallow中使用dangerous权限需要在代码中进行实现。

首先,当然是判断工程中是否有用到dangerous级别的系统权限。

/** * 检测是否申请了用户权限 *@param context 当前页面 *@param permission 需要获取的权限 *@return boolean */

public static boolean isPermissionAllowed(Context context, String permission) {

return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;

}

该方法直接调用ContextCompat类去自检工程中是否有permission,并与PackageManager.PERMISSION_GRANTED参数进行比较返回一个boolean值,当返回true时,接下去逻辑代码该怎么写就怎么写,当false时,一种选择是自己定义没有权限时的后续行为,但这不怎么科学,为什么不使用6.0自带的提示框呢,只要一行代码就可以调用咯!

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_CAMERA_AUTHORITY);

于是代码基本上是这么搞的:

if (PermissionUtils.isPermissionAllowed(this, Manifest.permission.CAMERA)) {

...// do what you want

} else {

// 开启系统默认的权限获取提示框

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_CAMERA_AUTHORITY);

}

还没完,如果开发者还需要对用户点击系统权限授权弹出框(见图,长这样子https://developer.android.com/images/training/permissions/request_permission_dialog.png)后的后续行为进行定义Android也提供了相关的回调方法。BTW该回调方法需要继承FragmentActivity才有(因为所有的方法都在v4包当中),Activity是没有的。调用的方法如下:

@Override

public void onRequestPermissionsResult(int requestCode,

String permissions[], int[] grantResults) {

switch (requestCode) {

case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {

// 如果用户不授权,grantResults就会是空的

if (grantResults.length > 0

&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {

// 用户授权了,你想怎么玩儿?

} else {

// 用户不爽不授权,执行B计划

}

return;

}

// switch case 语句用来区分同一界面的不同系统权限的操作

}

}

以上! 对了,Tips: 保持Gradle里面v4包的版本一直最新吧,之前用了22版本的死活出不了这些方法,更新成最新的版本才可以调用这些代码。

http://www.lbrq.cn/news/813565.html

相关文章:

  • 江苏企业网站建设价格/seo顾问服务公司
  • 郑州优化网站/营业推广是一种什么样的促销方式
  • 著名的设计企业网站/百度知道合伙人答题兼职入口
  • 网站推广预期达到的目标/百度推广要自己建站吗
  • 朝阳市网站公司/房地产最新消息
  • 企业网站建设内容报价/如何创建网站的快捷方式
  • 国外 电子 商务 网站 欣赏/网络营销的优缺点
  • 做程序开发的网站/百度搜索引擎的网址是
  • 做淘宝客网站制作教程/怎么自己创建一个网页
  • 西安优化seo/seo关键词优化推荐
  • 集团网站建设要多少钱/企业管理培训机构排名前十
  • php企业网站开发/html网页制作代码大全
  • 淘宝客单页网站怎么做/整站快速排名优化
  • 文昌网站建设/安徽seo优化规则
  • 网站建设需要确定的问题/全国十大婚恋网站排名
  • 做网站留后门是怎么回事/域名检测
  • 现在网站后台有哪几种模板形式/cms自助建站系统
  • 网站改版换了域名/电脑培训班电脑培训学校
  • 动易网站首页制作/seo引擎优化是什
  • 网站定制营销/网络推广的方式
  • 苏州网站建设营销推广/南京百度
  • 富阳做网站洛洛科技/站长字体
  • 无锡做网站seo/百度云网盘资源搜索引擎入口
  • 上海市做网站/江苏网站seo营销模板
  • 企业网站建设品牌/网络服务运营商
  • by13777免费域名查询/杭州seo联盟
  • 成都网站建设外包公司排名/色盲怎么治疗
  • html免费网站模板带后台/开发网站的流程是
  • html5模板免费下载/技术优化seo
  • 自己做的网站竞价优化/seo搜索引擎优化ppt
  • 电子电气架构 --- 软件bug的管理模式
  • Docker的简单使用
  • 主要分布在腹侧海马体(vHPC)CA1区域(vCA1)的混合调谐细胞(mixed-tuning cells)对NLP中的深层语义分析的积极影响和启示
  • AI小智源码分析——音频部分(一)
  • reflections:Java非常好用的反射工具包
  • 【Python小工具】-英文大小写转换功能的GUI工具