使用createInsecureRfcommSocketToServiceRecord或createRfcommSocketToServiceRecord的Android蓝牙连接在Samsung Device Android 7

时间:2017-07-26 09:41:30

标签: android bluetooth sdk

我在使用Android 6或7的所有三星Galaxy设备连接到蓝牙设备时遇到了一些问题。 相同的代码正在使用Android 7的其他设备,例如HTC M9。

我的代码到目前为止:

         try {
            adapter.cancelDiscovery();

            socket = device.createInsecureRfcommSocketToServiceRecord(btUuid);
            socket.connect();

            publishProgress(context.getString(R.string.bt_con_established));

            int r;
            byte[] s = new byte[256];
            BufferedInputStream in = new BufferedInputStream(socket.getInputStream());

            while(!isCancelled() && (r = in.read(s)) != -1) {
                publishProgress(new String(s, 0, r));
            }
        } catch (IOException e) {
            e.printStackTrace();
            if(!isCancelled()) {
                return context.getString(R.string.bt_con_error);
            }
        } finally {
            try {
                if(socket != null) {
                    socket.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
                return context.getString(R.string.bt_con_not_closed);
            }
        }

我总是收到一个isSocketAllowedBySecurityPolicy。

有人有一个想法,为什么这只是在三星设备上不起作用? 三星或KNOX设备上是否有一些特殊的安全规则?

我还使用了UUID 0000110E-0000-1000-8000-00805F9B34FB,但错误相同。

非常感谢

0 个答案:

没有答案