【发布时间】:2015-05-25 14:00:38
【问题描述】:
我正在从事一个涉及蓝牙和 Android 操作系统的研究项目。我需要让蓝牙无限期地被发现,以便项目继续进行。
问题:
- Android 将可发现性限制为 300 秒。
- 我不能每 300 秒要求用户重新打开可发现性,因为我的应用程序设计为在后台运行而不会打扰用户。
- 据我所知,没有办法通过 Android 的 GUI 来增加时间。一些消息来源称这是一项安全功能,另一些消息来源称这是一个错误。两者可能都有一些道理......
我正在尝试/已经尝试过的:
- 我正在尝试编辑cyanogenmod 的稳定版本以关闭可发现性计时器(这是可能的;有一个配置文件需要更改一个数字)。这不起作用,因为我对生成的包有验证问题。
- 在过去的一周里,我下载了cyanogenmod source code,更改了一个相关类,希望它可以无限期地发现蓝牙,并尝试recompile.这不起作用,因为(a)repo经常更改,导致无法编译的不稳定代码库(或者,可能是我使用不正确;仅仅因为在许多情况下它看起来是代码的错误并不意味着我应该将所有问题归咎于我遇到!)和(b)回购决定定期“忽略”我(但不总是,因为我之前已经获得了代码库!),回复我的同步/连接尝试:
致命:远端意外挂断
如您所想,上述两个问题存在问题,处理起来非常令人沮丧。
更多信息:
- 我正在通过 cyanogenmod(我相信是 v5)运行 Android 2.1。这意味着手机也已植根。
- 我有一个开发者手机,这意味着引导加载程序已解锁。
- 我的手机是 HTC Magic (32B)。
大问题:
- 如何让蓝牙在 Android 上无限期被发现?
【问题讨论】:
-
如果你有源代码,你可以使用一些私有的 api 每 300 秒直接打开蓝牙。但是我真的不知道这是否可能以及如何做到这一点。
-
我实际上可以更改源代码中的一些值并(理论上)完全关闭 300 秒计时器。不幸的是,我在编译时遇到了很多问题,这就是我在这里寻找替代方案的原因。但是,如果我可以编译它并且我的第一个想法失败了,那么这是一个非常合理的解决方案。我会记住的,谢谢!
-
但是关闭 300 秒计时器是否意味着用户需要您的自定义 rom?
-
由于这是一个研究项目,我们(我自己和其他研究人员)正在分发我们自己的手机,每部手机都有定制的 rom。
-
哦,那我认为那将是最好的选择。