当前位置: 首页 > wzjs >正文

上海建设人才网站怎么样引流加微信

上海建设人才网站,怎么样引流加微信,武汉做网站云优化科技,php网站多语言翻译怎么做Android 应用蓝牙连接通信实现,主要包括如下步骤: 一.打开蓝牙 // 获取蓝牙适配器 BluetoothAdapter bluetoothAdapter BluetoothAdapter.getDefaultAdapter() 1.判断蓝牙是否打开, bluetoothAdapter.isEnabled() 2. 如果未打开,执行打开蓝牙…

Android 应用蓝牙连接通信实现,主要包括如下步骤:


一.打开蓝牙


// 获取蓝牙适配器
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
1.判断蓝牙是否打开,
bluetoothAdapter.isEnabled()
2. 如果未打开,执行打开蓝牙,需要权限:Manifest.permission.BLUETOOTH
bluetoothAdapter.enable()
或者打开系统蓝牙设置界面让用户点击打开蓝牙。
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);


二.搜索蓝牙设备列表,配对需要连接的设备


1.启动设备发现
bluetoothAdapter.startDiscovery()
2.注册广播监听发现到的蓝牙设备
如果发现蓝牙设备可以获取BluetoothDevice对象

// 注册广播接收器监听设备发现
private final BroadcastReceiver findDeviceReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (BluetoothDevice.ACTION_FOUND.equals(action)) {// 发现新设备BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);if (ActivityCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {return;}Log.d("Bluetooth", "发现设备: " + device.getName() + " - " + device.getAddress());// 添加到设备列表(如 RecyclerView)}}
};
// 注册广播监听附近蓝牙设备
//IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
//registerReceiver(findDeviceReceiver, filter);


3.配对
3.1 客户端设备(主动发起连接的设备)发起配对(系统自动处理弹窗)
    device.createBond();    
    手机A系统弹窗显示配对码待用户点击确定,
3.2  服务端设备(等待连接的设备)处理配对
发起配对后,同时待连接蓝牙设备也会弹窗显示配对码待用户点击确定。
发起配对端和待连接蓝牙设备在配对界面点击确定后完成配对。如果超时未点击确定,会弹窗超时提醒。
这里可以 注册广播接收器监听ACTION_PAIRING_REQUEST来监听请求配对信息,该广播会在蓝牙配对时触发并携带设备信息。
ps:一般Android系统已经做了广播监听处理配对请求,无需用户自定义。

//广播监听蓝牙配对请求
BroadcastReceiver pairRequestReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if (BluetoothDevice.ACTION_PAIRING_REQUEST.equals(intent.getAction())) {BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);int pairingVariant = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, -1);if (pairingVariant == BluetoothDevice.PAIRING_VARIANT_PIN) {// 处理PIN码请求,可以调用startSystemPairDialog打开系统蓝牙配对弹窗// 或者调用startUserPairDialog打开用户自定义蓝牙配对弹窗}}}
};
// 注册广播监听配对请求
//IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_PAIRING_REQUEST);
//registerReceiver(pairRequestReceiver, filter);/*** 打开系统蓝牙配对弹窗* @param context* @param device 通过action ACTION_PAIRING_REQUEST 获取到的请求配对的BluetoothDevice.*/
private void startSystemPairDialog(Context context, BluetoothDevice device) {Intent pairingIntent = new Intent(BluetoothDevice.ACTION_PAIRING_REQUEST);pairingIntent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);pairingIntent.putExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.PAIRING_VARIANT_PIN);pairingIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);if (ActivityCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {return;}context.startActivity(pairingIntent);
}/*** 打开用户自定义蓝牙配对弹窗,点击确定完成配对请求。* @param context* @param device*/
private void startUserPairDialog(Context context, BluetoothDevice device) {//todo 自定义弹窗 点击确定, 执行如下 调用setPin处理PIN码配对try {Method setPin = device.getClass().getMethod("setPin", byte[].class);setPin.invoke(device, "1234".getBytes()); // 替换为设备预设的PIN码Method createBond = device.getClass().getMethod("createBond");createBond.invoke(device);} catch (Exception e) {e.printStackTrace();}
}


3.3 如果是已经配对过,可获取已配对设备列表

Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
for (BluetoothDevice device : pairedDevices) {String macAddress = device.getAddress(); // 获取已连接设备的MAC地址
}


三. 连接设备,数据通信


1. 客户端设备(主动发起连接的设备)创建RFCOMM Socket并连接 连接远程设备
//配对过后,创建RFCOMM Socket并连接到服务:使用UUID指定服务标识符,创建RFCOMM Socket并连接到远程设备。

/*** 客户端设备(主动发起连接的设备)连接服务端获取 BluetoothSocket 和服务端socket数据通信** @param context* @param device* @throws IOException*/
private void clientConnect(Context context, BluetoothDevice device) throws IOException {if (ActivityCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {return;}BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));socket.connect(); // 阻塞式连接//连接之后就可以获取输入输出流进行 读写操作了InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();
}

2.服务端设备(等待连接的设备)监听连接(BluetoothServerSocket)
连接之后就可以基于socket获取输入输出流进行 读写操作了。    

/*** 服务端设备(等待连接的设备)连接客户端后 获取BluetoothServerSocket 和客户端socket数据通信** @param context* @param device* @throws IOException*/
private void serverListen(Context context, BluetoothDevice device) throws IOException {BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//name:字符串参数,表示服务的名称,这个名称会被写入设备的SDP(服务发现协议)数据库。//uuid:UUID,用于标识服务,客户端和服务器必须使用相同的UUID才能建立连接。if (ActivityCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {return;}BluetoothServerSocket serverSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord("MyBluetoothApp", UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));BluetoothSocket socket;while (true) {try {socket = serverSocket.accept(); // 阻塞等待客户端连接if (socket != null) {// 连接成功,启动数据传输线程//客户端连接之后就可以获取输入输出流进行 读写操作了InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();serverSocket.close();break;}} catch (IOException e) {Log.e("Bluetooth", "ServerSocket异常", e);break;}}
}


    

http://www.dtcms.com/wzjs/234911.html

相关文章:

  • b2c电商网站账户百度双十一活动
  • 哪个网站可以做蛋白质的跨膜图百度网站推广价格查询
  • 中小企业网站建设服务今日实时热点新闻事件
  • 成都专业网站制作哪家好免费建站系统官网
  • 泰安诚信的企业建站公司简述网络营销的方法
  • 网站改版的费用可以直接进入网站的正能量
  • 聊天软件开发公司新seo排名点击软件
  • 深圳罗湖做网站的公司有没有帮忙推广的平台
  • 网页编辑与网站编辑ps培训
  • 河南微网站建设公司哪家好免费的html网站
  • 宁波seo网站推广实体店铺引流推广方法
  • wordpress显示idseo关键词大搜
  • 简单的个人网站html郑州网站建设推广
  • 网站充值平台怎么做的网址查询域名解析
  • 企业网站pr值低怎么办网站seo提升
  • 棋牌网站哪里做余姚seo智能优化
  • 美美淘-专做女鞋拿货选款网站seo顾问服务 乐云践新专家
  • 网络服务提供者知道或者应当知道网络用户利用其网络服务侵害他人民事权益seo如何提高排名
  • 网站推广软文欣赏品牌营销理论
  • 一个服务器可以放几个网站广州网站建设
  • 数字资产交易网站开发优秀网页设计赏析
  • 网站 短链接怎么做福州seo按天付费
  • 最适合新闻资讯建站的cms抖音推广怎么做
  • 创建一个自己的公司的英文seo网站查询
  • 知识网站有哪些企业网络营销青岛
  • 珠海品牌网站制作百度人工服务在线咨询
  • 网站开发费的税率是多少充电宝关键词优化
  • 凡客网站建设石家庄百度快速排名优化
  • 网站怎样做外链市场宣传推广方案
  • 企业做网站需要注意什么问题免费的外链平台