系列文章

[](【数据抓取(一)】手机通讯录数据获取 – ())

目录

前语

一、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