Unity 蓝牙插件
1、新建一个Unity5.6.2f1工程,导入正版Bluetooth LE for iOS tvOS and Android.unitypackage
2、用JD-GUI反编译工具查看unityandroidbluetoothlelib.jar
3、将反编译的代码拷贝出来,建立对应的文件目录,
4、在Eclipse中建立空工程,将代码文件放进去。
5、修改AndroidManifest.xml,添加蓝牙权限
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>
6、将unity-classes.jar文件添加到libs目录下.这个jar文件可以从Unity导出一个Android工程中找到
7、修改其中的3处错误
(A)注释的这个
//import android.bluetooth.le.ScanSettings.Builder;
(B)
private UUID getFullBluetoothLEUUID(String uuidString)函数中UUID uuid;重定义了
(C)
public class AdRecordList类中的
this.Records.add(new UnityBluetoothLE.AdRecord(UnityBluetoothLE.this, length, type, data));
改为this.Records.add(new UnityBluetoothLE.AdRecord(length, type, data));
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++重点来了,LEKE山寨机Q9自带的didoOS6.5系统不能执行蓝牙扫描功能函数+++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我要做的就是修好这个BUG!!!
之所以可以确定可以修好这个BUG,是因为有一款通过蓝牙控制机器人的APP装在这台山寨机上可以进行蓝牙通信
经过几天的缜密调试测试,发现那款APP也只能连接已经配对好的机器人蓝牙!!!
找到突破口!既然这货不能通过程序API扫描周围蓝牙设备,那就用它自带的系统蓝牙扫描(自带的系统蓝牙扫描还是能用的)
在程序中获取已经配对的蓝牙设备。
GOOOOOOOD!!
网上找到相关代码碎片,拿过来测试,通过!!
在private void api21Scan(List<UUID> uuids)开头添加以下代码:
//得到所有已配对的蓝牙适配器对象
Set<BluetoothDevice> devices = mBluetoothAdapter.getBondedDevices();
if(devices.size()>0){
for(Iterator iterator = devices.iterator();iterator.hasNext();){
BluetoothDevice bluetoothDevice = (BluetoothDevice) iterator.next();
//Toast.makeText(mContext, "AA>>>"+bluetoothDevice.getAddress(), Toast.LENGTH_SHORT).show();
// 给Unity发送过去
UnityBluetoothLE.this.sendDiscoveredDevice(bluetoothDevice, 0, null);
}
}
Eclipse中打包jar步骤:
项目名右键-选择Properties-勾选Is Library-Apply-OK
项目名右键-Build Project,将会在bin目录下生成一个.jar文件
最后将工程打包成一个jar文件,替换掉Unity工程中的unityandroidbluetoothlelib.jar
相关文章
- Android 插件化 动态升级
- SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
- jQuery补充,基于jQuery的bxslider轮播器插件
- unity当两个以上Android插件冲突,怎么配置manifest
- Unity中的ShaderToys——将大神们写的shader搬到unity中来吧
- knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
- 资源的插件化
- 《Gradle权威指南》--Android Gradle插件
- CkEditor 插件开发
- 开发故事:我在项目那些有用的eclipse插件
- atitit.基于bat cli的插件管理系统.doc
- Unity新手必备5款宝藏插件--价值上千元白嫖最新版
- Unity扩展-Package Manager都有哪些插件-说明(中)
- Eclipse环境安装Python插件PyDev
- Spring Boot 热部署插件
- 【Android Gradle 插件】自定义 Gradle 任务 ⑨ ( 控制 Gradle 执行任务顺序 | Task#finalizedBy 函数 | 控制 Gradle 执行任务顺序示例分析 )
- 【Android 插件化】VAHunt 检测插件化引擎的具体细节
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 反射获取 IActivityManager 对象 )
- Unity航海寻宝计划-插件资源篇-战斗坦克套件项目
- ELK [译]你应该了解的5个 Logstash Filter 插件