Tag: 蓝牙

启动iOS模拟器时,蓝牙耳机的音乐质量会降低

情况有点像这样: 我正在编程Xcode,同时在我的蓝牙耳机上听音乐…你知道阻止世界。 然后,我开始在iOS模拟器和BOOM中启动我的应用程序,突然之间,我的水晶般清澈的音乐变得乱七八糟,超级低质量,就像在二十个街区以外的浴缸里玩耍一样。 注意:如果我正在笔记本电脑或电影院播放音乐,则不会发生质量下降,我将启动SIM卡。 似乎只是一个模拟 – >蓝牙问题。 问题不仅仅是烦人的。 因为经常停止模拟器蹩脚的浴缸质量音乐继续。 要解决这个问题,我必须在OSX中打开声音设置,然后短暂地切换回我的笔记本电脑声音,然后返回到我的蓝牙耳机。 这是一个大问题,因为我每天都会启动模拟器50x,每次都要做这个切换的事情,以及听到40年代单声道无线电质量的音乐。 仅供参考,我使用的耳机是Plantronics Back Beat Pro,我的固件版本是最新的。 我在OSX 10.11.4和Xcode 7.3上,但是现在这个问题在所有版本中都持续了2年以上。 你能救我从20世纪40年代?

蓝牙免提客户端音量控制

我有一个Android设备充当免提客户端设备使用hfp。 使用下面的代码: 我能够接到电话,扬声器和麦克风按预期工作。 我的问题是,我似乎无法控制音量。 我尝试使用下面的代码行来find正确的stream,但没有一个似乎工作。 我跟踪了从手机发送给客户端的音量命令HeadsetClientStateMachine ,行#1822在以下链接: HeadsetClientStateMachine from lolipop case EVENT_TYPE_VOLUME_CHANGED: if (event.valueInt == HeadsetClientHalConstants.VOLUME_TYPE_SPK) { mAudioManager.setStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO, event.valueInt2, AudioManager.FLAG_SHOW_UI); mVgsFromStack = true; Log.d(TAG, "EventVolumeChange STREAM_BLUETOOTH_SCO value: " + event.valueInt2); } 当我改变手机的音量时,我看到日志显示声音的更新值,这意味着正在调用setStreamVolume()方法,但音量不会改变。 有谁知道什么可能导致这个问题? 编辑: 我仍然在寻找答案,现在正在寻找audioHAL实现。 我怀疑,HAL和audio驱动程序之间的链接是不正确的…我不太了解低层次的实现,我不知道我应该寻找什么。

(Dis)将蓝牙设备连接到Windows.Devices.Bluetooth.Rfcomm(WP8.1)

在Windows Phone / Desktop 8.1上连接和断开与蓝牙设备的连接已经得到各种结果。 我一直在使用Windows.Devices.Bluetooth.Rfcomm命名空间,并试图用不同的蓝牙版本/类来连接多个设备。 版本1.2(1级和2级) 版本2.0(1级和2级) 版本2.1(1级和2级) testing诺基亚Lumia 625和Lumia 635,戴尔Latitude E6500和戴尔Precision M6400。 每当我尝试连接到2.0或2.1设备都有问题。 我第一次尝试连接到每个设备,一切都会好起来,连接将打开。 当我closures连接并重新连接设备时,麻烦就开始了。 在重新连接期间,连接永远不会打开,debugging器将抛出一个System.Exception: > Message: No further data is available. 另外,当连接失败时,Windows 8.1设备将自行尝试(不成功)连接到蓝牙设备,即使我自己的应用程序被终止。 有时Windows 8.1设备也会将蓝牙设备显示为已连接,而设备可视化地显示它不再连接。 重新连接蓝牙设备的唯一方法是取消配对并closures/重新启动Windows设备上的蓝牙。 每当我尝试在连接失败之后尝试对DeviceInformation进行新的调用时,它将拒绝返回之前尝试连接的设备。 > Message: The service cannot be found in the specified name space. 奇怪的结果,1.2设备完美的工作。 清单文件: <m2:DeviceCapability Name="bluetooth.rfcomm"> <m2:Device Id="any"> <m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/> </m2:Device> </m2:DeviceCapability> select设备: Guid […]

如何将蓝牙活动转移到服务中

该应用程序给用户2个连接选项,USB和蓝牙。 USB工作正常。 我已经获得了蓝牙连接的示例代码,但是它们被devise用作活动。 我试图在一个服务,但失败了。 BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); startService(new Intent(this, MyService.class)); <service android:enabled="true" android:name=".MyService" /> enter code here 我需要与已经配对的设备build立蓝牙通信,并且MAC地址已知。 所以我可以跳过发现和配对阶段。 我试图连接的设备总是可以发现并等待连接。 有没有办法从一个服务级别做到这一点,并通过其他活动保持连接? 我正在使用BluetoothChatService和DeviceListActivity

使用蓝牙发送文件OBEX对象推送configuration文件(OPP)

有什么办法使用OBEX发送一个文件使用android蓝牙API? 我需要将文件发送到仅支持OBEX OPP的打印机。 我可以使用Android意图ACTION_SEND发送文件到打印机没有问题,但我需要以编程方式发送它。 我可以用方法createRfcommSocketToServiceRecord()使用OBEX OPP UUID(1105)连接到蓝牙打印机,但是我应该按照obex规范使用OBEX发送一个文件..这并不像将字节写入输出套接字那么简单。 。 但如果意图ACTION_SEND可以处理这个,为什么开发人员没有任何api发送文件? 我也检查了像BlueCove一些第三方库,但我仍然没有得到它的工作..(Nexus One&Galaxy Tab抛出一个exception,说本地库bluecove_armv71不可用..和LG Optimus One说bluecove_armv61 isn没有可用..) 我卡住了,有什么想法? 工作解决scheme 对于任何试图将文件发送到蓝牙设备而没有运气的人,我提供了一个使用内容提供商的工作解决scheme(感谢KPBird): 从这里抓取java类的BluetoothShare 以下代码将SD卡上的文件发送到蓝牙设备: BluetoothDevice device; String filePath = Environment.getExternalStorageDirectory().toString() + "/file.jpg"; ContentValues values = new ContentValues(); values.put(BluetoothShare.URI, Uri.fromFile(new File(filePath)).toString()); values.put(BluetoothShare.DESTINATION, device.getAddress()); values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND); Long ts = System.currentTimeMillis(); values.put(BluetoothShare.TIMESTAMP, ts); Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values); UPDATE 有些人遇到上述解决scheme的问题,已经在以下设备上进行了testing: 适用于: LG […]

原则上,Android设备可以通过蓝牙/ GameKit与iPhone连接吗?

(我对纯理论不感兴趣,而是作为一个实际的近期或中期的可能性,在12-24个月内说。 作为一个熟悉(但不是专门)两个主要智能手机平台的开发者,我是否应该期待一个Android库出现,这个库可以欺骗一个iPhone应用程序的基于GameKit的networking。 平台之间的蓝牙接口似乎是合理的,有可能形成有用的应用程序,就像调制解调器通过梅特卡夫法则使PC / Mac平台受益一样。 我正在寻找两个答案之一: 这显然不太可能(例如,由于encryption)? 如果是这样,原因是什么? 原则上是可行的,但需要多年的反向工程(如SMB / CIFS / Samba)? 或者这是一个无脑的事情,只是一个时间问题? 请提供证据支持你的理由。 除了GameKit之外,还有其他的直接点对点networking方式吗? 例如,使用蓝牙或ad-hoc WiFi的手动滚动networking? 将Android设备伪装成现有的iPhone应用程序会很好,但是我的主要问题是设备能否相互通话!

将蓝牙设备连接到32位.NET蓝牙库的电脑上

如果您想知道如何使用32feet.NET库与蓝牙设备进行通信,请阅读该解决scheme 我目前正试图通过计算机和自build的.NET Gadgeteer原型之间的蓝牙进行通信。 Gadgeteer原型由主板,电源和蓝牙模块组成。 该模块处于可发现模式。 在计算机上运行基于32feet .NET蓝牙的自定义蓝牙程序。 该程序检测范围内的所有蓝牙设备,并尝试与他们配对。 但是,这不是自动完成的,我必须input设备的配对码。 如何配对设备而不input配对码? 设备被find,问题是配对的一部分。 我尝试了很多,但没有find解决scheme… foreach (BluetoothDeviceInfo device in this.deviceList) { try { //BluetoothClient client = new BluetoothClient(this.CreateNewEndpoint(localAddress)); //BluetoothEndPoint ep = this.CreateNewEndpoint(device.DeviceAddress); EventHandler<BluetoothWin32AuthenticationEventArgs> handler = new EventHandler<BluetoothWin32AuthenticationEventArgs>(HandleRequests); BluetoothWin32Authentication auth = new BluetoothWin32Authentication(handler); BluetoothSecurity.PairRequest(device.DeviceAddress, null); } } 此代码块启动配对,它的工作原理,但Windows要求我input设备的配对代码。 我读了关于BluetoothWin32Authentication以防止这种情况,但我不明白。 private void HandleRequests(object that, BluetoothWin32AuthenticationEventArgs e) { e.Confirm = true; […]

有没有办法在iOS中以编程方式打开和closures蓝牙和/或WiFi?

我正在寻找一种简单的方法来在iOS 4.x设备(iPhone和iPad)上打开和closures状态之间切换蓝牙和WiFi。 当我在不同的位置和使用场景之间移动时,我不断地切换这些function,现在需要多次点击并访问设置应用程序。 我正在寻找创build一个简单的应用程序,在Springboard上生活,我可以点击,它将closures无线networking,如果打开,反之亦然,然后立即退出。 与用于切换蓝牙状态的应用程序类似。 我有开发人员的SDK,并且在Xcode和iOS开发中很舒服,所以很高兴编写所需的代码来创build应用程序。 我只是不知道哪些API,私有或者不具有所需的function来简单地切换这些设施的状态。 因为这是一个非常个人的痒,我没有试图出售应用程序或在应用程序商店得到它,所以符合应用程序的API使用指南是没有问题的。 我不想做的是越狱的设备,因为我想保持核心软件出货。 任何人都可以通过一些示例代码或者关于实现这个目标的更多信息来指向我,因为我的Google-fu让我失望了,如果4.x设备的信息已经存在,我就找不到它了。

检测对BluetoothAdapter所做的状态更改?

我有一个应用程序的button,我用来打开和closuresBT。 我在那里有下面的代码; public void buttonFlip(View view) { flipBT(); buttonText(view); } public void buttonText(View view) { Button buttonText = (Button) findViewById(R.id.button1); if (mBluetoothAdapter.isEnabled() || (mBluetoothAdapter.a)) { buttonText.setText(R.string.bluetooth_on); } else { buttonText.setText(R.string.bluetooth_off); } } private void flipBT() { if (mBluetoothAdapter.isEnabled()) { mBluetoothAdapter.disable(); } else { mBluetoothAdapter.enable(); } } 我打电话buttonFlip,翻转BT状态,然后调用ButtonText,它应该更新UI。 然而,我遇到的问题是,BT开启需要几秒钟 – 在这段时间内,BT状态未启用,使我的button说蓝牙closures,即使它将在2秒钟内打开。 我在BluetoothAdapter android文档中find了STATE_CONNECTING常量,但是…我根本不知道如何使用它,作为一个新手和所有。 所以,我有两个问题: 有没有办法将UI元素(如button或图像)dynamic绑定到BT状态,以便当BT状态改变时,button也会改变? 否则,我想要按下button,并获得正确的状态(我想它说BT,即使它只是连接,因为它将在2秒钟)。 […]

蓝牙低功耗:在Linux中侦听通知/指示

我试图通过Linux机器与BLE模块进行通信(模块正在运行心率档案)。 到目前为止,除了听取通知和指示外(例如,听取心率测量通知),我已经能够做到我需要的一切。 我正在使用内核版本3.5和bluez-5.3。 目前使用的成功命令: hcitool lescan hcitool lecc gatttool -b <Mac Address> –primary gatttool -b <MAC Address> –characteristics gatttool -b <MAC Address> –char-read gatttool -b <MAC Address> –char-desc gatttool -b <MAC Address> –interactive 失败的命令: gatttool -b <MAC Address> –listen 任何帮助是极大的赞赏。