问题标签 [android-bluetooth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
30351 浏览

android - 将 Android 设备用作另一台设备的耳机

当我在计算机上使用蓝牙时,我可以选择几种不同类型的设备来查找。一种选择是“耳机”。

我想制作一个可以连接到另一台设备的应用程序,就好像它只是一个耳机一样。因此音频和麦克风将从 Android 手机路由到其他设备。

这在蓝牙 API 中是否可行?如果是这样,蓝牙聊天示例是否是此类事情的最佳开始?我能找到的大部分信息都处理相反的情况(使用带有 Android 设备的实际耳机。)

0 投票
1 回答
5709 浏览

android - 安卓蓝牙,覆盖配对提示

假设一个设备以前从未见过另一个设备,在这个设置中,它已经知道它的设备 MAC 地址,并简单地尝试配对该设备以确定它现在是否在范围内

如何覆盖配对对话?

0 投票
1 回答
370 浏览

android - Android - 蓝牙查找设备错误

我是新来的,所以如果我写了一些不好的东西,我深表歉意,我的代码中出现了一些错误,应该找到一些但设备(在 Eclipse 中它看起来不错,但是当我单击按钮 Find Device 时它显示了一些 Force Quit :(

代码

0 投票
1 回答
4164 浏览

android - 检测蓝牙设备睡眠状态 Android

我正在开发一个以蓝牙连接为核心部分的应用程序。目前该应用程序正在成功连接到蓝牙设备并与之通信。现在的主要问题是我们用来收集数据的设备在某些空闲状态后进入睡眠模式。

我的问题是,如何检测设备处于睡眠模式,以便我的应用程序可以要求用户唤醒设备?

我通过 SSP 连接。连接代码是 API 演示中蓝牙聊天应用程序的精确副本。

睡眠模式——我的应用程序连接到的设备(非移动设备)使用电池运行,因此如果 Android 应用程序在 1 分钟内没有对设备发出任何请求,则优化电池的使用设备进入睡眠模式。(可能已关闭不掉线)。所以我的应用程序需要捕获这种情况并让用户知道设备处于睡眠模式并将其唤醒,以便它可以响应应用程序请求。这是我可以解释睡眠模式的最佳方式。请记住蓝牙设备的睡眠模式,而不是安卓手机。

0 投票
2 回答
637 浏览

android - Android蓝牙事件接收数据

我正在开发一个android应用程序,开发程序有点困难。当我通过蓝牙接收文件时,我需要自动通过电子邮件发送此文件。我的应用程序在收到文件之前不会启动,即通过蓝牙传输使操作系统...

我一直在测试 FileObserver 类但是有一个问题,当我收到文件然后使用一种方法发送电子邮件,但是在运行该方法时通过蓝牙传递文件,有什么办法让它等到文件是完全发送?

0 投票
1 回答
249 浏览

android - Android Bluetooth pairing different behavior

I have developed an app that prints receipts to a Bluetooth printer (Star Micronics).

When I execute my app on an Android tablet with 4.1 OS everything works.

When I execute my app on an Android tablet with 4.0 OS I have to re enter Bluetooth pairing password every time I want to print and the printer failed to connect although it is paired.

Is this a bug of 4.0 or I have to do something in my code?

0 投票
5 回答
48797 浏览

android - 如何通过蓝牙将音频从一台 Android 设备流式传输到另一台 Android 设备?

是否可以通过蓝牙流式传输音频?在我的研究中,我发现只能使用A2DP(Advanced Audio Distribution Profile). 每个安卓设备都支持A2DP吗?如果没有,是否可以使用蓝牙在两个安卓设备之间传输音频?请帮助我理解这一点。

我浏览了以下链接:

0 投票
2 回答
1622 浏览

java - 蓝牙/WiFi 直接套接字的高级协议?

当您在 Android 中使用蓝牙或 WiFi Direct 时,在所有握手等操作结束时,您会使用套接字。

使用 TCP/IP,我们在套接字之上有无数个库,用于高级协议:HTTP、XMPP、IMAP 等。感谢这些库,我们可以处理更多特定于域的抽象一个操作(例如,“下载这个文件”),由库处理低级套接字管道。

问题:对于任何高级协议,是否存在已知可与通过 Android 的蓝牙和/或 WiFi Direct 层生成的套接字一起工作(或可能工作)的等效协议?

现在,我对特定协议并不挑剔——我只是在寻找这种协议层的示例,以便开发人员更容易使用这些连接选项。

例如,看起来我可以为OkHTTP创建一个分支或附加组件,它使用套接字的替代源,并且我可能创建一个执行相同操作的 Java HTTP 服务器。鉴于这些,应用程序开发人员将编写通过蓝牙或 WiFi Direct 通信的 HTTP 应用程序(并且,至少在客户端,编码应该在感觉上相当“自然”,一旦连接特定的配对和握手已经开始)。

IOW,回到处理原始套接字的感觉就像二十年前...... :-)

谢谢!


更新

根据 Kristopher Micinski 对 ZeroMQ 答案的评论,我认为可能需要进行一些澄清。

说我想要的更容易:我不想在创建套接字之后触摸它们。更高级别的其他东西应该为我处理这些,加上处理我认为的“协议”(例如,确定某些通信操作何时结束,超出套接字关闭)。

大多数情况下,这是为了我的书。大多数关于低级套接字内容的书籍示例都是不切实际的,例如“我们打开一个到服务器的套接字并立即开始爆破代表要上传的某些图像的字节,然后在完成后关闭套接字”。虽然这些示例有效,但在现实生活中你永远不会写出这样的东西:

  • 如果您真的在套接字级别工作,那么即使您自己滚动协议,您也将实现一些希望解决身份验证、错误处理等问题的协议

  • 今天很少有开发人员直接使用套接字进行 Internet 操作

现在,如果该层提供的协议是开发人员习惯的(例如,HTTP)或即使他们没有使用过(例如,XMPP)也听说过的协议,那就太好了。我会满足于简单的场景(例如,N-way 支持很酷但不是必需的)。在这方面,基于初步研究(由睡眠不足的大脑进行),ZeroMQ 不是一个糟糕的选择。与可以与任意套接字一起使用的 XMPP 堆栈相比,它缺乏一点“品牌认知度”。但即兴发挥它似乎满足了我正在寻找的其他东西。

我认识到这些堆栈将受到底层传输的限制(例如,蓝牙适用于 N 路,仅适用于较小的 N 值)。我当然不想在这里或在我的书中描述我描述的任何解决方案都是基于套接字的通信的全部和全部。

我只想要一些祈祷在实际使用中更现实的东西。如果它是我可以理解的东西,我会加分,因为我一直使用更高级别的协议进行 TCP/IP 通信,所以我缺乏直接套接字操作的经验。

0 投票
1 回答
730 浏览

android - 使用 createInsecureRfcommWithServiceRecord 将蓝牙与 Android 配对

基本上,我正在尝试将我的 Galaxy Note (4.1.2) 与连接到 arduino ( https://www.sparkfun.com/products/582 )的 bluesmirf 配对

我从 Instructables http://www.instructables.com/id/Missed-calls-and-SMS-Notifier-Accessory/撕掉了这个项目, 并发现了一些友好的评论,建议替换一小部分代码,这样就不会有每次我的 android 尝试与蓝牙模块建立连接时都需要输入密码(自动连接到 Android 上的配对蓝牙设备)。

我使用与 Avner 相同的代码,所以我只是借用了他/她的代码作为参考。

这是我从 Eclipse 获得的当前反馈,elipse 声称 listenUsingInsecure 或 createInsecureRf 是未定义的

未定义 BluetoothAdapter PhoneInfoServer.java /myPhoneInfoWithService/src/myPhoneInfo/test/zakiem 第 539 行 Java 问题类型的方法 listenUsingInsecureRfcommWithServiceRecord(String, UUID)

如果我使用 createInsecureRfcommSocketToServiceRecord 替换 listenUsingInsecureRfcommWithServiceRecord 也是如此

就个人而言,我认为这是经过一些谷歌搜索后的 API 版本问题,但我该如何做到这一点?这里是一个总菜鸟,所以对此的任何帮助将不胜感激。

提前致谢。

0 投票
2 回答
3481 浏览

android - 处理程序和多个活动

好的,我是 android 新手,我正在尝试创建一个通过蓝牙与 arduino 交互的应用程序。我已经看到了示例 BluetoothChat,并看到了它如何使用处理程序在“服务”、由它产生的线程和 MainActivity 之间进行通信。我的问题是我有多个活动需要使用蓝牙服务。对于每个活动,我都有一个这样的处理程序:

在服务构造函数中我得到了这个:

当我需要发送消息时,我会这样做:

但是在其他各种处理程序中没有收到消息。此处声明“特定线程的所有 Handler 对象都接收相同的消息” 。所以我无法理解这个问题。每次启动活动时,我是否需要将在该活动中声明的处理程序传递给服务以使其接收消息?这似乎有效,但对我来说似乎不是一个好习惯。