You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Profile Owner应用调用retrieveNetworkLogs()遇阻:求batchToken获取方法

获取retrieveNetworkLogs所需的batchToken方法

核心逻辑

batchToken用于分页拉取网络日志,遵循以下规则:

  • 首次调用时,直接传入**0L**作为初始token,这是系统规定的起始标识,用来获取第一批日志。
  • 后续每一批日志的batchToken,取自上一次调用retrieveNetworkLogs()返回的NetworkLogs对象中的nextBatchToken字段。当nextBatchToken为0L时,说明已没有更多日志可拉取。

调整后的示例代码

val devicePolicyManager = getSystemService(Activity.DEVICE_POLICY_SERVICE) as DevicePolicyManager?
// 启用网络日志
devicePolicyManager?.setNetworkLoggingEnabled(null, true)
val isEnabled = devicePolicyManager?.isNetworkLoggingEnabled(null)

// 首次调用:传入0L获取初始日志批次
val initialLogs = devicePolicyManager?.retrieveNetworkLogs(null, 0L)
// 拉取下一批日志(如果有的话)
initialLogs?.let {
    if (it.nextBatchToken != 0L) {
        val nextLogs = devicePolicyManager.retrieveNetworkLogs(null, it.nextBatchToken)
    }
}

关键说明

  • 不要尝试自行生成batchToken,所有有效token都来自NetworkLogs返回结果,初始值固定为0L。
  • 每次调用只会返回当前批次的日志,需要循环使用nextBatchToken来获取完整的日志记录。

内容的提问来源于stack exchange,提问作者Mahedi Hasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:57:45