当前位置: 首页 > 知识库问答 >
问题:

android java.io.ioException:传输endpoint未连接

邵奇
2023-03-14
public class MainActivity extends Activity {

    TextView out;
    private static final int REQUEST_ENABLE_BT = 1;
    private BluetoothAdapter btAdapter;
    private ArrayList<BluetoothDevice> btDeviceList = new ArrayList<BluetoothDevice>();
    private ArrayAdapter<String> mPairedDevicesArrayAdapter;
    private ArrayAdapter<String> mNewDevicesArrayAdapter;
    BluetoothDevice device1;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        out = (TextView) findViewById(R.id.out);
        btAdapter = BluetoothAdapter.getDefaultAdapter();
        ListpairedDevices();
    }

    /* This routine is called when an activity completes. */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_ENABLE_BT) {
            CheckBTState();
        }
    }

    public void ListpairedDevices() {
        Set<BluetoothDevice> pairedDevices = btAdapter.getBondedDevices();

        // If there are paired devices, add each one to the ArrayAdapter
        if (pairedDevices.size() > 0) {
            out.append("\nPaired Devices \n");
            for (BluetoothDevice device : pairedDevices) {
                out.append("\n  Device123: " + device.getName() + "," + device);
                //mPairedDevicesArrayAdapter.add("\n  Device123: " + device.getName() + "," + device);
                String dv=device.toString();
                if(dv.contains("00:1B:EE:82:31:1E"))
                {
                device1=device;
                }
            }
        } else {
            out.append("\nNo Pared Device");
        }
        out.append("\nDiscovered Devices");
    }

    public void sendtext(View v) {//button click

    Set<BluetoothDevice> bd=btAdapter.getBondedDevices();
    sendDataToPairedDevice("message1");
    }
    private void sendDataToPairedDevice(String message ){       
        byte[] toSend = message.getBytes();
        try {
         UUID applicationUUID = UUID.fromString("8ce255c0-200a-11e0-ac64-0800200c9a66");
         BluetoothSocket socket = device1.createInsecureRfcommSocketToServiceRecord(applicationUUID);
         OutputStream mmOutStream = socket.getOutputStream();
         mmOutStream.write(toSend);
     } catch (IOException e) {
         Log.e( "Exception during write", e.toString());
     }
 }
}

共有1个答案

丁高峯
2023-03-14

编辑:

您需要连接到套接字,在此之前,您需要取消发现

 btAdapter.cancelDiscovery();
 socket.connect();

UUID曾为Kiran K J is工作

btAdapter=BluetoothAdapter.getDefaultAdapter();
 类似资料:
  • 首先,画布中有两个节点,并且应用了一些endpoint样式。如果我拖动它们之间的连接,所有样式都可以保留。没关系。但是当使用jsPlumb连接方法时,它将导入默认的endpoint样式,而不是给定的样式。我该如何避免这种情况? 一些javascript代码在这里:

  • 对于接受文件输入的APIendpoint,我们需要手动关闭还是框架为我们这样做? 我查了新泽西的文件,但找不到任何关于它的信息。 寻找可靠的来源或某种方式来验证它。

  • 本文介绍如何为 DM 的连接开启加密传输,包括 DM-master,DM-worker,dmctl 组件之间的连接以及 DM 组件与上下游数据库之间的连接。 为 DM-master,DM-worker,dmctl 组件之间的连接开启加密传输 本节介绍如何为 DM-master,DM-worker,dmctl 组件之间的连接开启加密传输。 配置开启加密传输 准备证书。 推荐为 DM-master、D

  • 我正在使用jsPlumb创建一个包含两列的匹配小部件。 jsPlumb实例创建为: 我创建了源和目标,如下所示: 连接过程正常工作。但是在建立一个连接后的问题如果我删除连接,连接endpoint仍然可见。 我尝试添加配置“\u deleteondetch”,还尝试删除connectiondeach上的endpoint。在这两种情况下,endpoint都被删除,但在我尝试连接相同的元素时,它会出错。

  • 问题内容: 具有加密功能的ElastiCache使用TLS与Redis客户端进行通信,但是正如我所见,在将客户端配置为我们的TLS时,所有语言(ioredis,predis,go- redis)的Redis客户端都需要一个pem文件。 如何在不提供TLS证书的情况下通过传输加密连接到Elasticache? 问题答案: 解决方案-不需要证书,仅用于在客户端中启用TLS(例如,ioredis仅具有

  • 我目前有一个依赖于通过安全套接字传输的JSON的原始RPC设置,但我想切换到gRPC。不幸的是,我还需要访问windows上的AF\U UNIX(Microsoft最近开始支持,但gRPC尚未实现)。 由于我有一个现有的工作连接(使用另一个库进行管理),我的首选方法是将其与GRPC结合使用来发送/接收命令,而不是JSON解析,但我正在努力确定实现这一点的最佳方法。 我已经看到将自定义传输插入gRP