Trigger.io蓝牙权限?

时间:2014-03-12 20:36:45

标签: android bluetooth trigger.io

我正在使用蓝牙硬件设备,我正试图让它与我的Trigger.IO应用程序接口。看起来似乎不可能,尽管技术上应该如此。以下是我到目前为止的步骤:

  • 使用Trigger.IO模块功能创建一个能够在Trigger.IO应用程序和本机Java代码之间成功发送和接收消息的模块

  • 创建了一个成功与蓝牙硬件设备通信的原生Android应用程序

  • 将我原生的Android蓝牙代码移植到我的Trigger.IO模块中

此时自定义模块包含在Trigger应用程序中并且似乎正确启动,但是当我拨打应启动蓝牙设备连接逻辑的呼叫时,我收到有关蓝牙权限的错误。我确保我的模块在AndroidManifest.xml内具有必要的蓝牙权限,但我担心基本触发器应用程序没有所需的权限。

这些是在尝试启动蓝牙连接时在LogCat内输出的日志:

D/Forge: Native call module.startDevicePolling with task.params: {}
D/BluetoothManagerService: Message: 20
D/BluetoothManagerService: Added callback: Android.bluetooth.IBluetoothManagerCallback$Stub$Proxy@41f84218:true
W/dalvikvm: threadid=25: thread exiting with uncaught exception (group=0x41612ba8)
I/Process: Sending signal. PID: 11967 SIG: 9
E/AndroidRuntime: FATAL EXCEPTION: Incoming Data Thread
E/AndroidRuntime: Process: io.trigger.forge42a1430afae511e2a0e61231392b77b0, PID: 11967
E/AndroidRuntime: java.lang.SecurityException: Need BLUETOOTH permission: Neither user 10230 nor current process has android.permission.BLUETOOTH.

查看部署的.APK根目录下的AndroidManfiest.xml,看起来Trigger只拥有INTERNET和ACCESS_NETWORK_STATE的权限。其他人遇到这个?我想如果我可以获得BLUETOOTH权限进入根AndroidManifest.xml,事情会起作用,但该文件被编码为不容易。

2 个答案:

答案 0 :(得分:0)

我能够通过更改本地触发器android模板来解决我的问题,以便给予我所需的权限。这显然不太理想。理想的情况是让Trigger逻辑查看本机模块,派生所需的权限,并相应地更新其主AndroidManifest.xml

答案 1 :(得分:0)

Trigger.io确实支持模块添加权限的功能 - 请参阅Changing build configuration

总结:

  1. android/build_steps.json
  2. 中添加构建步骤文件
  3. 对于您的方案,请使用以下内容更新构建步骤文件:[ { "do": { "android_add_permission": { "permission": "android.permission.BLUETOOTH" } } } ]
  4. 更改Android或iOS的构建步骤后,更新检查器项目
  5. 非常重要