Android6,androidstudio游戏开发教程
在dos命令行中输入adb shell pm list permissions -d -g便可得到如下危险权限:
C:\Users\Administrator.PC-20160322ZIOG>adb shell pm list permissions -d -g
Dangerous Permissions:
group:com.google.android.gms.permission.CAR_INFORMATION
permission:com.google.android.gms.permission.CAR_VENDOR_EXTENSION
permission:com.google.android.gms.permission.CAR_MILEAGE
permission:com.google.android.gms.permission.CAR_FUEL
group:android.permission-group.CONTACTS
permission:android.permission.WRITE_CONTACTS
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
开源分享完整内容戳这里
permission:android.permission.GET_ACCOUNTS
permission:android.permission.READ_CONTACTS
group:android.permission-group.PHONE
permission:android.permission.READ_CALL_LOG
permission:android.permission.READ_PHONE_STATE
permission:android.permission.CALL_PHONE
permission:android.permission.WRITE_CALL_LOG
permission:android.permission.USE_SIP
permission:android.permission.PROCESS_OUTGOING_CALLS
permission:com.android.voicemail.permission.ADD_VOICEMAIL
group:android.permission-group.CALENDAR
permission:android.permission.READ_CALENDAR
permission:android.permission.WRITE_CALENDAR
group:android.permission-group.CAMERA
permission:android.permission.CAMERA
group:android.permission-group.SENSORS
permission:android.permission.BODY_SENSORS
group:android.permission-group.LOCATION
permission:android.permission.ACCESS_FINE_LOCATION
permission:com.google.android.gms.permission.CAR_SPEED
permission:android.permission.ACCESS_COARSE_LOCATION
group:android.permission-group.STORAGE
permission:android.permission.READ_EXTERNAL_STORAGE
permission:android.permission.WRITE_EXTERNAL_STORAGE
group:com.sina.weibo.permission-group
permission:com.sina.weibo.permission.USER
group:android.permission-group.MICROPHONE
permission:android.permission.RECORD_AUDIO
group:android.permission-group.SMS
permission:android.permission.READ_SMS
permission:android.permission.RECEIVE_WAP_PUSH
permission:android.permission.RECEIVE_MMS
permission:android.permission.RECEIVE_SMS
permission:android.permission.SEND_SMS
permission:android.permission.READ_CELL_BROADCASTS
ungrouped:
permission:com.huawei.pushagent.permission.RICHMEDIA_PROVIDER
permission:com.huawei.permission.ACCESS_FM
permission:com.huawei.motion.permission.MOTION_EX
permission:org.fidoalliance.uaf.permissions.FIDO_CLIENT
permission:com.huawei.contacts.permission.CHOOSE_SUBSCRIPTION
通过观察可以发现危险权限都是成组出现的,我们将其称之为权限组,如果用户允许了一组权限中的一个那么就等于允许了这一组中所有的权限(目前是这样的)。
下面我们以申请拨打电话的权限来介绍如何向用户申请授权:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final int CALL_PHONE_REQUESTCODE = 0;//申请打电话权限的请求码,≥0即可
private View mCall;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
initListener();
}
public void initView() {
mCall = findViewById(R.id.call);
}
public void initData() {}
public void initListener() {
mCall.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.call:
performClickCall();
break;
default:
break;
}
}
private void performClickCall() {
//检测是否有拨打电话的权限
int checkSelfPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE);
if (checkSelfPermission == PackageManager.PERMISSION_GRANTED) {
call();//打电话
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, CALL_PHONE_REQUESTCODE);//动态申请打电话权限
}
}
/**
- 拨打电话的方法
*/
private void call() {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(“tel:10086”));
startActivity(intent);
}
/**
动态申请权限的回调
@param requestCode 请求码,如果请求多个权限时,用以区分是哪个权限
@param permissions 权限数组
@param grantResults 权限是否授权的结果数组
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case CALL_PHONE_REQUESTCODE:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
call();
} else {
Android6,androidstudio游戏开发教程相关推荐
- 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial
仙剑奇侠传 开发 游戏 开发 教程 Xianjian qixia development Game development tutorial 作者:韩梦飞沙 Author:han_meng_fei_ ...
- Unity 2D游戏开发教程之摄像头追踪功能
Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...
- 微信小游戏开发教程-游戏实现3
微信小游戏开发教程-游戏实现3 对象池 由于游戏过程中会创建很多临时对象,这些对象很快又不再使用,垃圾回收器也能帮我们主动回收这部分垃圾,但是回收时间不可控制,同时增大了创建对象的开销,所以我们使用对 ...
- 微信小游戏开发教程-游戏实现2
微信小游戏开发教程-游戏实现2 绘制地面 类似于绘制背景,读者自行完成代码.src/runtime/land.js 简易View系统 坐标布局对于复杂的页面来说维护相当困难,因此这里我们引入布局的概念 ...
- 微信小游戏开发教程-游戏实现1
微信小游戏开发教程-游戏实现1 概述 微信开发者工具官方提供一个飞机大战的游戏Demo,这里我们不再使用这个demo,我们以FlappyBird为例,为了让读者更加容易理解. 源码 https://g ...
- 微信小游戏开发教程-2D游戏原理讲解
微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...
- 微信小游戏开发教程-新建项目
微信小游戏开发教程-新建项目 1. 新建小游戏项目 我们这回使用空项目,不要勾选使用模板创建. 2. 添加小游戏必要文件 项目创建好以后我们发现缺少一些必要的文件,我们手动添加即可: game.jso ...
- Unity 2D游戏开发教程之游戏中精灵的跳跃状态
Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...
- Unity 2D游戏开发教程之为游戏场景添加多个地面
Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...
- Unity 2D游戏开发教程之精灵的死亡和重生
Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...
最新文章
- Android studio听云接入另外一种方式
- SYMBDSNAP_SDK[3943]: Failed to open device: /dev/symbdsnapctl, errno: 2
- boost::units模块实现确保最小的 + - * / 单元类功能齐全的测试程序
- acwing 7 混合背包
- mysql数据库主要负责存储_MySQL默认数据库简介
- SQL Server中删除重复数据的2个方法
- mysql复制状态是什么意思_mysql8 参考手册--复制从SQL线程状态
- OpenShift 4 之Knative(2) - 第一个Serverless应用
- springmvc中实现quartz定时任务
- 免费版本的mysql与收费版本的区别
- jquery抽奖转盘java,jquery——九宫格大转盘抽奖实例
- 艺工交叉——观《达芬奇的人生密码》有感
- 路由器、交换机、集线器
- GRUB4DOS资源索引帖,欢迎跟帖补充
- HAUT 1285: 军团再临【并查集*逆向思维】
- 阿里云与华为USG防火墙IPSEC对接
- 做个很小众的应用就可以月入数万,为什么多数程序员都不做个人开发?
- node.js实现图片裁剪+获取图片大小+加logo水印
- 《安富莱嵌入式周报》第298期:迷你火星探测器,开源单片机3D实时渲染库, 开源USB工业相机,VS2022开始支持MarkDown,PC-lint 2.0发布
- Leetcode之恰有K根木棍可以看到的排列数目