系列文章
[](【数据抓取(一)】手机通讯录数据获取 – ())
目录
前语
一、DataCapture
- 1.通讯录调集数据
- 2.运用列表调集数据
- 3.日历事情信息数据
- 4.电量信息数据
- 5.sms短信信息数据
- 6.相片调集信息数据
- 7.传感器信息数据
- 8.wifi信息数据
- 8.1 wifi概况数据
- 9.硬件信息数据
二、运用过程
- 1.引进库
- 2.获取数据办法,现在因数据量巨大,暂引荐手动在子线程调用
- 3.关于权限,待更新
- 总结
前语
基于最近刚结束的外包项目功用——数据抓取,经过调用api和内容供给器来获取手机设备各种数据,诸如SMS短信数据、电量数据、手机运用数据等等,我测验开发了一个开源库,希望能够协助到我们来完成这个功用。
习惯性上图展示:
体会demo:(密码:3fwy)
一、DataCapture
对手机设备的信息数据抓取,现在支撑在子线程抓取数据,由于有些数据量过于巨大会阻塞线程,可抓取数据有:
1.通讯录调集数据
字段名 | 概况 |
---|---|
contact_display_name | 联络人称号 |
last_time_contacted | 前次通讯时刻(毫秒) |
number | 联络人手机号 |
times_contacted | 联络次数 |
up_time | 修正时刻(毫秒)) |
type | 通话类型 |
2.运用列表调集数据
字段名 | 概况 |
---|---|
app_name | APP称号 |
app_type | 是否体系app 0:非体系app 1:体系app |
app_version | APP版别 |
in_time | 安装时刻(毫秒) |
obtain_time | 数据抓取时刻(秒)) |
package_name | 包名 |
up_time | 更新时刻 (毫秒) |
version_code | 版别号 |
3.日历事情信息数据
字段名 | 概况 |
---|---|
description | 事情描绘 |
end_time | 事情结束时刻(毫秒) |
event_id | 事情ID |
event_title | 事情标题 |
start_time | 事情开始时刻(毫秒)) |
reminders | 提示列表 |
4.电量信息数据
字段名 | 概况 |
---|---|
battery_level | 电池电量 |
battery_max | 电池容量 |
battery_pct | 电池百分比 |
battery_state | 电池状况 充电0 不充电1 |
is_ac_charge | 是否交流充电(1:yes,0:no) |
is_charging | 是否正在充电 |
is_usb_charge | 是否USB充电(1:yes,0:no) |
5.sms短信信息数据
字段名 | 概况 |
---|---|
content | 短信消息体 |
other_phone | 收件⼈/发件⼈⼿机号 |
package_name | 包名 |
read | 短信状况 0-未读,1-已读 |
seen | 短信是否被用户看到 0-没有检查,1-已检查 |
status | 短信状况:-1表示接收,0-complete,64-pending,128-failed |
subject | 短信主题 |
time | 收到短信的时刻戳(毫秒),long型 |
type | 短信类型:1-接收短信,2-已宣布短信 |
6.相片调集信息数据
字段名 | 概况 |
---|---|
addTime | 增加数据库时刻(保存) |
author | 相片作者 |
createTime | 相片读取时刻(毫秒数时刻戳),即当时时刻 |
date | 摄影时刻(毫秒数时刻戳) |
flash | 闪光灯 |
focal_length | 镜头的实际焦距 |
gps_altitude | 海拔高度 |
gps_processing_method | 定位的办法称号 |
height | 相片高度 |
latitude | 相片拍照时的经度 |
lens_make | 镜头制造商 |
lens_model | 镜头的序列号 |
longitude | 相片拍照时的纬度 |
model | 摄影机型 |
name | 相片称号 |
orientation | 相片方向 |
save_time | 相片修正时刻 |
software | 生成图画的相机或图画输入设备的软件或固件的称号和版别 |
take_time | 创建时刻(毫秒数时刻戳) |
updateTime | 修正时刻 |
width | 相片宽度 |
x_resolution | X方向上每个分辨率的像素数 |
y_resolution | Y方向上每个分辨率的像素数 |
7.传感器信息数据
字段名 | 概况 |
---|---|
id | 传感器id,0不支撑功用,-1即其类型和称号的组合在体系中仅有标识。-2获取不到 |
maxRange | 传感器单元中传感器的最大量程 |
minDelay | 两个事情之间允许的最小推迟(以微秒为单位),如果此传感器仅在其丈量的数据发生变化时返回值,则为零 |
name | 传感器称号 |
power | 运用时功率 |
resolution | 传感器单元中传感器的分辨率 |
type | 该传感器的通用类型 |
name | 传感器称号 |
vendor | 厂商字符串 |
version | 版别 |
8.wifi信息数据
字段名 | 概况 |
---|---|
current_wifi | 当时WIFI概况 |
ip | 网络IP(内网) |
wifi_count | wifi 个数 |
configured_wifi | 装备WIFI,邻近的wifi |
8.1 wifi概况
字段名 | 概况 |
---|---|
bssid | bssid |
mac | mac |
name | name |
ssid | ssid |
9.硬件信息数据
字段名 | 概况 |
---|---|
board | 主板 |
brand | 设备品牌 |
cores | 设备内核 |
device_height | 分辨率高 |
device_name | 设备称号 |
device_width | 分辨率宽 |
model | 设备类型 |
physical_size | 物理尺寸 |
production_date | 手机出厂时刻戳 |
release | 体系版别 |
sdk_version | SDK版别 |
serial_number | 设备序列号 |
二、运用过程
1.引进库
在seetings.gradle中引进
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' }
}
在build.gradle中引进
implementation 'com.github.Android5730:DataCapture:v0.24'
2.获取数据办法,现在因数据量巨大,暂引荐手动在子线程调用
// 获取通讯录
List<AddressBookBean> addressBookBean = AddressBookUtil.getAddressBookBean(getBaseContext());
// 获取运用列表
List<AppListBean> appListBean = AppListUtil.getAppListBean(this);
// 获取日历事情
List<CalendarListBean> calendarListBean = CalendarListUtil.getCalendarListBean(this);
// 获取电量信息
BatteryStatusBean batteryState = BatteryStatusUtil.getBatteryState(this);
// 获取wifi信息
NetworkBean networkBean = NetworkBeanUtils.getNetworkBean(this);
// 获取wifi信息概况
NetworkBean.CurrentWifiBean current_wifi = NetworkBeanUtils.getNetworkBean(this).getCurrent_wifi();
// 获取邻近wifi调集
// 获取sms短信信息
List<SmsBean> smsList = SmsUtil.getSmsList(this);
// 获取相片调集信息
List<PhotoInfosBean> photoInfosBean = PhotoInfosUtil.getPhotoInfosBean(this, LocationUtils.getInstance(this).showLocation());
// 获取传感器调集信息
List<SensorListBean> sensorListBean = SensorListUtil.getSensorListBean(this);
// 获取硬件信息
HardwareBean hardwareBean = HardwareUtil.getHardwareBean(this);
3.关于权限,待更新
注意:由于获取图片时需求外部存储的权限,我这儿采取的撤销分区存储的做法,所以我们不要忘记在application里增加android:requestLegacyExternalStorage="true"
如果有哪个权限碍眼,或者项目强制不需求,也能够进行删除,如去除读取外部存储的权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
tools:node="remove"/>
<!-- 定位权限,需动态恳求 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 通讯录,需动态恳求 -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- 日历信息,需动态恳求 -->
<uses-permission android:name="android.permission.READ_CALENDAR" />
<!-- wifi信息,不必动态恳求 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- SMS信息,需动态恳求 -->
<uses-permission android:name="android.permission.READ_SMS" />
<!-- photo信息,需动态恳求-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- 硬件信息,不需动态恳求-->
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<!-- 撤销分区存储-->
<meta-data
android:name="ScopedStorage"
android:value="true" />
最终附上开源库地址:数据抓取:https://github.com/Android5730/DataCapture 如果有协助到各位,能够给个star,给我一点信心去完善这个开源库
总结
当然现在该库现在抓取的数据还不到外包项目抓取数据的一半,仅仅由于最近有点忙,没时刻完善所以才匆匆忙忙推出,信任等开学后就有时刻完善,现在实习太累了。如果我们有疑问,能够在评论区提出,也能够在issue提出来,如果受到我们欢迎,我会持续完善此库。
9/1日更新:新增硬件数据抓取,优化展示demo作用,更新版别号0.24