教你如何实现Android Pbap Client功能(即Car Kit)

来源:互联网 发布:librosa有c语言版本吗 编辑:程序博客网 时间:2024/05/29 12:04

http://blog.csdn.net/lansefeiyang08/article/details/76863403


现在越来越多的人开始在车载市场使用Android系统,但是Google的Auto系统和Android Wear一样,需要授权,这就使很多开发者或者团队并不能获得auto版本的功能。

那么我们需要自己实现蓝牙的某些功能。

其实Google为了帮助大家,也做了一些准备工作,在提供的SDK中也提供了PbapClient的核心profile代码。

代码路径在sdk/source/android-21/android/bluetooth/client/pbap.

但是大家不要误会,这只是pbapclient的核心profile代码,不可以直接用的。


如果你想在7.0以前的版本都是没有相关的功能接口的,所以需要自己基于核心代码做功能开发。7.0以后的代码google已经把此部分代码加入了release代码中,但是不一定能使用,需要验证一下。

现在我们就来讲解一下开发思路。

在7.0以前的版本中,首先你要知道我们做哪几部分?

1.frameworks(修改api接口,需要支持pbapclient的相关调用和bluetooth pbapclient服务的绑定)

2.修改vcard部分

3.修改bluetooth服务,新加pbapclient的相关功能

4.修改Settings代码,需要加入同步通讯录的开关入口

好的,现在我们来讲一下整个修改思路:

由于pbapclient功能在7.0以前的版本不支持,这就要加入代码


当然你会发现这里面多了一些文件,这些文件是与framework和进行交互时要用的。

再就是改framework了,首先你要知道我们需要改什么?

改启动pbapclient的proxy,改pbapclient的API(包括connect。。。。),改启动pbapclient的服务等等。

主要修改的几个文件是BluetoothAdapter.java、BluetoothProfile.java、加入BluetoothPbapClient.java、IBluetoothPbapClient.aidl。

这里由于不能贴修改的源码,所以讲一下思路,这里的改动是根据Bluetooth服务中加入的BluetoothPbapClient文件的相关错误进行修改加入的。

接下来就是vcard了,问什么要修改vcard呢,也是因为根据Bluetooth服务中加入的BluetoothPbapClient文件的相关错误进行修改。

简单一点讲,在加入了上图中的代码后,会出现很多错误,这些改动就是为了能改正错误的,而不是把错误删掉。

那接下来最后一步就是如何使用了,在我们的开发中,Settings中的蓝牙属于最直观的交互入口,所以我们可以修改Settings代码来实现交互设计。

就是在已连接时点到连接界面,会看到Contant sharing的开关,这可以发起连接到手机端,同时手机端会出现同步通讯录的界面。

(建议使用IOS手机进行测试,因为如何没有pbapclient的profile,IOS手机不会出现同步通讯录的界面,只有成功连接了pbapclient,IOS手机才会出现同步通讯录的开关按钮)。

最后一步验证就是到你Android设备的通讯里去看一下是否已经同步成功。

如果已经成功了,在你设备的通讯录会有你手机的电话号码。


希望写的东西对大家有用,如果有谁有此需求,可以单独联系我QQ: 951710378。

技术交流请进我的技术群是307822447,欢迎大家进群交流。


阅读全文
2 0
原创粉丝点击