记录app通过蓝牙连接小票打印机的坑

来源:互联网 发布:linux locale 编辑:程序博客网 时间:2024/04/28 01:29

试了好几台5.0以下版本的测试机,发现可正常通过蓝牙连接打印机,我就以为大功告成了,结果测试的时候,在锤子手机上一打开app就崩溃了。。。

报错信息:

IllegalArgumentException: Service Intent must be explicit: Intent
这句话是说,服务必须是显式启动。
这是Android 5.0的一个新特性也就是说从5.0开始,service服务必须采用!显示方式!启动。
<span style="white-space:pre"></span>Intent intent = new Intent("com.gprinter.aidl.GpPrintService");        //加上一个setPackage方法,否则在安卓5.0以上版本会崩溃,        intent.setPackage(getPackageName());//!!!        bindService(intent, conn, Context.BIND_AUTO_CREATE);
但是,这还没有完,在nexus 6x手机上,即6.0版本手机上又发现了一个问题,手机可正常搜索到蓝牙,并且可跟我们的打印机通过PIN码配对,可是app死活搜索不到打印机的蓝牙,找了打印机第三方的技术支持,人家说他们公司没给配6.0的设备,让我自己百度。。我也是醉醉的。。。
一番搜索得出结果:还是新的权限问题,6.0需要定位权限才能开启蓝牙
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />


0 0