第3个月:ACTION权限依赖
讲师寄语:
老师文采不好,随便唠叨几句,学习之所以感觉烦躁,是因为学习没有方式,学的东西越多,整理的也要越多,相信大家都可以高薪就业。文采很差。。。
一.所有的权限:
联网的权限:<uses-permission android:name="android.permission.INTERNET"/>
写SD卡权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
读SD卡权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
读取联系人的权限:<uses-permission android:name="android.permission.READ_CONTACTS"/>
读取短信的权限: <uses-permission android:name="android.permission.READ_SMS"></uses-permission>
1.相机权限:
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
写SD卡权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
读SD卡权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2.GPS权限:
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
3.高德地图定位权限:
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
4.高德地图2D权限:
//地图SDK(包含其搜索功能)需要的基础权限
<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
5.蓝牙权限:
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
二.所有的依赖:
1.recyclerview:
implementation ‘com.android.support:recyclerview-v7:28.0.0’
或者 implementation ‘com.android.support:recyclerview-v7:27.1.1’
2.xrecyclerview:
implementation ‘com.android.support:recyclerview-v7:28.0.0’
api(‘com.jcodecraeer:xrecyclerview:1.5.9’) {
exclude group: ‘com.android.support’
}
3.slidemenu:需要导入library
4.高德地图:
5.okhttp:
implementation ‘com.squareup.okhttp3:okhttp:3.12.1’
6.volley:
implementation ‘eu.the4thfloor.volley:com.android.volley:2015.05.28’
7.gson:
implementation’com.google.code.gson:gson:2.8.2’
8.eventbus:
implementation ‘org.greenrobot:eventbus:3.1.1’
9.otto:
implementation ‘com.squareup:otto:1.3.8’
10.picasso
implementation’com.squareup.picasso:picasso:2.5.2’
11.glide:
implementation ‘com.github.bumptech.glide:glide:3.7.0’
12.tabLayout:
implementation ‘com.android.support:design:25.2.0’
13.垂直tabLayout:
implementation ‘q.rorbin:VerticalTabLayout:1.2.5’
13.banner轮播图:
implementation ‘com.youth.banner:banner:1.4.10’
三 .所有的Action:
1.打开图库:Intent.ACTION_PICK
2.打开相机:MediaStore.ACTION_IMAGE_CAPTURE
3.打开摄像机:MediaStore.ACTION_VIDEO_CAPTURE
4.蓝牙:
(1)使用隐士意图打开蓝牙
BluetoothAdapter.ACTION_REQUEST_ENABLE:请求打开本设备蓝牙
BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE:允许本设备蓝牙被扫描
BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION:允许本设备蓝牙被扫描时长
(2)广播接收者的Action频道
BluetoothDevice.ACTION_FOUND:扫描到远程设备
BluetoothAdapter.ACTION_DISCOVERY_FINISHED:本设备扫描完成
BluetoothDevice.ACTION_BOND_STATE_CHANGED:远程设备状态发生改变
(3)获得扫描到的远程设备
BluetoothDevice.EXTRA_DEVICE:获得远程设备
(4)配对状态
BluetoothDevice.BOND_BONDED:远程设备绑定成功
BluetoothDevice.BOND_BONDING:远程设备绑定中
BluetoothDevice.BOND_NONE:远程设备绑定失败
四.常用的内容提供者
- 1.获取音频:
(1)uri:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
(2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址 String[] strs= new String[]{MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.DATA}; - 2.获取视频:
(1)uri:MediaStore.Video.Media.EXTERNAL_CONTENT_URI
(2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Video.Media.TITLE,MediaStore.Video.Media.ARTIST,MediaStore.Video.Media.DURATION,MediaStore.Video.Media.DATA}; - 3.获取图库:
(1)uri:MediaStore.Images.Media.EXTERNAL_CONTENT_URI
(2)字段:
MediaStore.Images.Media.TITLE;图片名称
MediaStore.Images.Media.SIZE;大小
MediaStore.Images.Media.DATA;地址 - 4.获取联系人: (1)uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI
(2)字段:Phone.DISPLAY_NAME:姓名 NUMBER:电话 String[] strs= new - 5.获取短信:
(1)uriTelephony.Sms.CONTENT_URI
(2)字段:ADDRESS 地址 BODY 内容 String[] strs= new
备注:1 2 3 读sd卡的权限 4 读联系人的权限 5 读短信的权限
五.思路
1.SurfaceView画画
步骤1:自定义类继承SurfaceView实现SurfaceHolder.Callback接口
步骤2:定义成员变量SurfaceHolder/Canves/Paint/Thread
步骤3:在第2个构造方法中获得SurfaceHolder对象并addCallback()
步骤4:在surfaceCreated生命周期中启动线程
步骤5:在xml布局中使用自定义的SurfaceView
2.SurfaceView+MediaPlayer播放视频
步骤1:在xml布局中定义SurfaceView标签
步骤2:初始化MediaPlayer
步骤3:初始化View获得SurfaceHolder对象并addCallback()
步骤4:在surfaceCreated生命周期中将MediaPlayer放到SurfaceView中mediaPlayer.setDisplay(holder);
3.GPS定位
步骤1:获得LocationManager: getSystemService()
步骤2:设置监听,监听位置的变化: manager.requestLocationUpdates()
4.高德地图定位功能:
步骤1:添加依赖上面有
步骤2:清单文件准备工作:https://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation
步骤3:创建AMapLocationClient对象
步骤4:为client对象设置监听AMapLocationListener,获得位置信息
步骤5:为client对象配置参数
步骤6:开始定位:locationClient.startLocation();
5.高德地图显示2D地图:
步骤1:添加依赖上面有
步骤2:清单文件准备工作:https://lbs.amap.com/api/android-sdk/guide/create-map/show-map
步骤3:显示2D地图
3.1 布局文件中引用MapView标签
3.2 通过MapView获得Amap对象
3.3 5个生命周期
步骤4:设置定位蓝点
6.蓝牙客户端
步骤1:打开蓝牙
步骤2:扫描远程设备,当扫描到一个远程设备添加到集合中
步骤3:当扫描完毕之后,设置适配器展示远程设备
步骤4:点击item配对远程设备
步骤5:当绑定成功后,开启线程传输数据
7.蓝牙客服务端
步骤1:打开蓝牙
步骤2:当和其他设备配对成功后,开启线程传输数据