登录
首页 » Android » 蓝牙寻找

蓝牙寻找

于 2022-03-17 发布 文件大小:63.35 kB
0 265
下载积分: 2 下载次数: 1

代码说明:

1.使用registerReceiver注册BroadcastReceiver来获取蓝牙状态、搜索设备等消息;2.使用BlueAdatper的搜索;3.在BroadcastReceiver的onReceive()里取得搜索所得的蓝牙设备信息(如名称,MAC,RSSI);4.通过设备的MAC地址来建立一个BluetoothDevice对象;5.由BluetoothDevice衍生出BluetoothSocket,准备SOCKET来读写设备;6.通过BluetoothSocket的createRfcommSocketToServiceRecord()方法来选择连接的协议/服务,这里用的是SPP(UUID:00001101-0000-1000-8000-00805F9B34FB);7.Connect之后(如果还没配对则系统自动提示),使用BluetoothSocket的getInputStream()和getOutputStream()来读写蓝牙设备。 

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Android-music-player-source
    安卓音乐播放器源码,附带详细word文档说明。(Android music player source, with a detailed documentation.)
    2013-08-05 20:50:01下载
    积分:1
  • android瀑布流的实现
    android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现android瀑布流的实现
    2022-03-18 14:50:45下载
    积分:1
  • Android全套宝典
    Android 数本经典学习书籍,实战经典,游戏编程,网络通信,用心体会让你有意向不到的收获。内含:Android实例与详解.pdfAndroid网络开发技术实战详解.pdfAndroid应用开发入门教程(经典版).pdfAndroid最基本组成介绍.pdf精通Android游戏开发.pdf
    2023-07-04 08:25:13下载
    积分:1
  • 微信公众平台开发模式(JAVA) SDK/微信app
    【核心代码】package com.gson;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Date;import java.util.Properties;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.gson.bean.Articles;import com.gson.bean.InMessage;import com.gson.bean.OutMessage;import com.gson.bean.TextOutMessage;import com.gson.inf.MessageProcessingHandler;import com.gson.util.Tools;import com.gson.util.XStreamFactory;import com.thoughtworks.xstream.XStream;/** * 请求拦截 * * @author GodSon * */public class WeChatFilter implements Filter { private final Logger logger = Logger.getLogger(WeChatFilter.class); private String _token; private String conf = "classPath:wechat.properties"; private String defaultHandler = "com.gson.inf.DefaultMessageProcessingHandlerImpl"; private Properties p; @Override public void destroy() { logger.info("WeChatFilter已经销毁"); } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; Boolean isGet = request.getMethod().equals("GET"); String path = request.getServletPath(); String pathInfo = path.substring(path.lastIndexOf("/")); if (pathInfo == null) { response.getWriter().write("error"); } else { _token = pathInfo.substring(1); if (isGet) { doGet(request, response); } else { doPost(request, response); } } } private void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/xml"); OutMessage oms = new OutMessage(); ServletInputStream in = request.getInputStream(); // 转换微信post过来的xml内容 XStream xs = XStreamFactory.init(false); xs.alias("xml", InMessage.class); String xmlMsg = Tools.inputStream2String(in); logger.debug("输入消息:[" xmlMsg "]"); InMessage msg = (InMessage) xs.fromXML(xmlMsg); // 获取自定消息处理器,如果自定义处理器则使用默认处理器。 String handler = p.getProperty("MessageProcessingHandlerImpl"); if (handler == null) handler = defaultHandler; try { // 加载处理器 Class clazz = Class.forName(handler); MessageProcessingHandler processingHandler = (MessageProcessingHandler) clazz.newInstance(); // 取得消息类型 String type = msg.getMsgType(); Method mt = clazz.getMethod(type "TypeMsg", InMessage.class); oms = (OutMessage) mt.invoke(processingHandler, msg); if (oms == null) { oms = new TextOutMessage(); ((TextOutMessage) oms).setContent("系统错误!"); } setMsgInfo(oms,msg); } catch (Exception e) { logger.error(e); oms = new TextOutMessage(); ((TextOutMessage) oms).setContent("系统错误!"); try { setMsgInfo(oms,msg); } catch (Exception e1) { logger.error(e); } } // 把发送发送对象转换为xml输出 xs = XStreamFactory.init(true); xs.alias("xml", oms.getClass()); xs.alias("item", Articles.class); String xml = xs.toXML(oms); logger.debug("输出消息:[" xml "]"); response.getWriter().write(xml); } private void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { String signature = request.getParameter("signature");// 微信加密签名 String timestamp = request.getParameter("timestamp");// 时间戳 String nonce = request.getParameter("nonce");// 随机数 String echostr = request.getParameter("echostr");// // 验证 if (Tools.checkSignature(_token, signature, timestamp, nonce)) { response.getWriter().write(echostr); } } private void setMsgInfo(OutMessage oms,InMessage msg) throws Exception { // 设置发送信息 Class outMsg = oms.getClass().getSuperclass(); Field CreateTime = outMsg.getDeclaredField("CreateTime"); Field ToUserName = outMsg.getDeclaredField("ToUserName"); Field FromUserName = outMsg.getDeclaredField("FromUserName"); ToUserName.setAccessible(true); CreateTime.setAccessible(true); FromUserName.setAccessible(true); CreateTime.set(oms, new Date().getTime()); ToUserName.set(oms, msg.getFromUserName()); FromUserName.set(oms, msg.getToUserName()); } /** * 启动的时候加载wechat.properties配置 可以在过滤器配置wechat.properties路径 */ @Override public void init(FilterConfig config) throws ServletException { String cf = config.getInitParameter("conf"); if (cf != null) { conf = cf; } String classPath = this.getClass().getResource("/").getPath().replaceAll("%20", " "); conf = conf.replace("classPath:", classPath); p = new Properties(); File pfile = new File(conf); if (pfile.exists()) { try { p.load(new FileInputStream(pfile)); } catch (FileNotFoundException e) { logger.error("未找到wechat.properties", e); } catch (IOException e) { logger.error("wechat.properties读取异常", e); } } logger.info("WeChatFilter已经启动!"); }}
    2014-01-21下载
    积分:1
  • Android 生成 FramebyFrame人物奔跑动画效果
    Android 生成 FramebyFrame动画效果,具体到本实例中,是以一个人物奔跑的动画为例,演示其实现方法。   在示例APK中,你可以控制元素开始动画、停止动画、运行一次动画、添加动画等。   想得到真实的动画体验,你需要本源码后重新编译成APK运行一下。
    2022-08-18 21:47:00下载
    积分:1
  • Android富文本编辑器源码+服务端 完整实例下载
    Android富文本编辑器源码+服务端 完整实例下载
    2014-09-15下载
    积分:1
  • [安卓开源]带详细注释的水果消消看源码
    说明:  一款游戏,有详细注释,可以运行在安卓平台上。(A game, with detailed annotations, can run on Android platform.)
    2020-06-21 14:20:02下载
    积分:1
  • 自定义进度条
    自定义进度条,可以自己设置属性,属性可以在style里边自己配置,更换颜色,样式等
    2023-05-09 05:10:03下载
    积分:1
  • 短信弹出开源
    SMSPopup是一个拦截收到的短信并将其显示在一个弹出窗的Android应用,弹出窗显示短信的内容、发送者以及他们的联系人照片 (若果有的话)。弹出窗口有关闭 (关闭时将短信置为已读)、删除、回复按钮 (调用系统Intent)。后续版本中添加了内置提示系统,允许用户取消系统的提示系统而采用SMS Popup提供的。提示系统还提供了一些额外的配置选项,如自定义震动模式、LED颜色、及记住用户错过的短信等等。
    2022-04-30 15:31:34下载
    积分:1
  • android考勤系统
    基于ecplise的android考勤系统,可实现学生签到,注册,判定离线等基本状态。
    2022-01-26 02:38:28下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载