AWARE: Calls
“Calls”感应器记录用户执行或接收的调用事件。它还提供了有关用户调用可用性和操作的更高层次上下文。
要求
iOS 10 或更高版本
安装
- com.awareframework.ios.sensor.calls 可以通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中
pod 'com.awareframework.ios.sensor.calls'
- 将 com.awareframework.ios.sensor.calls 库导入到您的源代码中。
import com_awareframework_ios_sensor_calls
公共函数
CallsSensor
init(config:CallsSensor.Config?)
: 使用可选的配置初始化通话传感器。start()
: 以可选配置启动通话传感器。stop()
: 停止服务。
CallsConfig
Class to hold the configuration of the sensor.
Fields
sensorObserver: CallsObserver
: 实时数据更新的回调。enabled: Boolean
传感器是否启用。(默认 =false
)debug: Boolean
启用/禁用记录到Logcat
。 (默认 =false
)label: String
数据的标签。(默认 = "")deviceId: String
将与事件和传感器关联的设备的ID。(默认 = "")dbEncryptionKey
数据库的加密密钥。(默认 =null
)dbType: Engine
保存数据时使用的数据库引擎。(默认 =Engine.DatabaseType.NONE
)dbPath: String
数据库的路径。(默认 = "aware_calls")dbHost: String
数据库同步的主机。(默认 =null
)
Broadcasts
Fired Broadcasts
CallsSensor.ACTION_AWARE_CALL_ACCEPTED
: 用户接受来电时触发。CallsSensor.ACTION_AWARE_CALL_RINGING
: 电话响起时触发。CallsSensor.ACTION_AWARE_CALL_MADE
: 用户正在拨打电话时触发。CallsSensor.ACTION_AWARE_USER_IN_CALL
:当用户正在通话时触发。CallsSensor.ACTION_AWARE_USER_NOT_IN_CALL
:当用户不在通话时触发。
接收到的广播
CallsSensor.ACTION_AWARE_CALLS_START
:接收启动传感器的广播。CallsSensor.ACTION_AWARE_CALLS_STOP
:接收停止传感器的广播。CallsSensor.ACTION_AWARE_CALLS_SYNC
:接收发送同步尝试到主机的广播。CallsSensor.ACTION_AWARE_CALLS_SET_LABEL
:接收设置数据标签的广播。标签期望在intent extras的CallsSensor.EXTRA_LABEL
字段中。
数据表示
通话数据
包含通话传感器的信息。
字段 | 类型 | 描述 |
---|---|---|
eventTimestamp | 长整型 | 实际事件的Unix时间毫秒 |
type | 字符串 | 以下通话类型之一(拨号、来电、已连接和未连接) |
attributes | 字符串 | 一个通话事件属性 |
duration | 整型 | 通话会话长度 |
trace | 字符串 | 通话的源/目标 |
deviceId | 字符串 | AWARE设备UUID |
label | 字符串 | 可自定义的标签。用于数据校准或追踪 |
timestamp | 长整型 | 自1970年以来的Unix时间毫秒 |
timezone | 整型 | 设备的时区 |
os | 字符串 | 设备的操作系统(例如:android) |
示例用法
let callsSensor = CallsSensor.init(CallsSensor.Config().apply{config in
config.debug = true
config.sensorObserver = Observer()
config.dbType = .REALM
})
callsSensor?.start()
callsSensor?.stop()
class Observer:CallsObserver{
func onCall(data: CallData) {
// Your code here..
}
func onRinging(number: String?) {
// Your code here..
}
func onBusy(number: String?) {
// Your code here..
}
func onFree(number: String?) {
// Your code here..
}
}
作者
西山村益山,[email protected]
相关链接
许可协议
版权所有 (c) 2021 AWARE 移动上下文仪器中间件/框架 (http://www.awareframework.com)
根据 Apache 许可证 2.0 版本("许可证");除非您遵守许可证,否则不得使用此文件。您可以在以下地址获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0除非法律规定或双方书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。请参阅许可证了解有关许可证管理许可和限制的具体语言。