Re: [问题] 透过蓝牙传送资讯(导航,乐曲,来电控

楼主: amoumou (amoumou)   2015-02-09 12:06:13
※ 引述《MrJerome (飘扬)》之铭言:
: : (以下简称手机App为A端,我们的产品为B端且所有通讯皆透过蓝牙):
: : 1.A端同时以蓝牙连接B端以及蓝牙耳机(接听电话用)
: 蓝芽可以[同时]连线多台设备?
: 我印象中是不行
: 除非可以接受[分开连接]
: ex:平常是连B设备, 但是一收到电话, 就断开B连接, 改连耳机
: : 2.A端可以传送来电资讯给B端,包含电话号码,来电人,接听状态等资讯。
: 可以做到
: : 3.B端可以用按钮来接听电话。动作流程描述如下:
: : 当A收到来电,B显示来电资讯,在B上按下接听按钮,
: : A接听电话并透过蓝牙耳机通话。
: : 换句话说就是要用B接电话,并且可以透过蓝牙耳机通话。
: 这等同是要透过蓝芽传递声音, 并要能够由手机端可以传递声音至对方
: 这点我就不是很确定了
: 至少有两个因素要克服
: 1. 蓝芽如何传递声音? (这应该可以办到, 毕竟都有蓝芽耳机了)
: 2. 收到的声音要如何透过电话传递给对方 (这点我就不清楚了)
感谢各位关心这个问题并回应提供方向,目前我已能将音乐资讯,
来电资讯从手机透过蓝牙送出。真的很感谢各位的热心!
来电资讯:
具体的做法是利用BluetoothChat这个范例来改,在MainActivity
加入PhoneStateListener来监听电话状态,当状态改变时可以
知道IDLE,OFFHOOK,RINGING三种状态以及电话号码,当
RINGING的时候,我就透过BluetoothChatFragment当中的sendMessage()
将资讯送出。
音乐资讯:
同样是在MainActivity中,我使用BroadcastReceiver接收广播
以及IntentFilter来过滤各厂牌音乐APP的广播。这样在
在onReceive事件中便可得到artist, album, track,以及isplaying
的资讯并用sendMessage()送出。
我目前最大的问题是:
当我的APP从B端收到"接听电话"指令的时候,
我的APP要如何让系统接这个电话?
流程大概是这样的:
(我的APP已经在背景执行中,手机的蓝牙连接了蓝牙耳机以及B端)
1.有来电,手机跳到来电的画面
2.来电资讯由我的APP透过蓝牙发送出去给B端
3.B端显示来电资讯并传送"接听电话"字串命令给APP
4.APP收到字串,使手机接听电话(接通后是使用蓝牙耳机来通话)。
卡在最后一步,目前我找不到方法可以让我的APP直接下令接听电话...
另外导航资讯的部分,我想我是没时间自己将导航功能写出,
因此朝向寻找现成的方案,希望能像音乐资讯那样接收资料然后送出。
我预想是当Google导航(或其他导航软件)
预报"前方300公尺请右转"的资讯时,
我的APP也能收到这个讯息并将它传送出去给B端。
但我找了几天找不到Google地图导航有提供Broadcast之类的讯息出来,
我利用maps, intent, broadcast, directions, turn by turn等关键字去搜寻
但是找不到需要的资讯,可能是我漏看或是方向错误,目前也持续在找...
在这方面有经验的前辈若能不吝指教,我在这边先行道谢了!
楼主: amoumou (amoumou)   2015-02-16 10:32:00
导航讯息后来我用NotificationListener解决了,但是必须要4.3以上

Links booklink

Contact Us: admin [ a t ] ucptt.com