android-APP-bluetooth
1、创建工程项目
2、工程界面(教程3)
如下目录所示:src目录下MainActivity.java是程序;res下面都是图标等资源文件,layout下的activity_main.xml是按钮等界面控制的布局和属性;AndroidManifest.xml是activity等注册的文件。
gen目录是系统生成的含有自动生成的资源ID号等;android5.0那几个是库和包等文件;assets是加进去的资源文件,区别于res的是这些的文件不会自动生成ID;values存放的是变量值定义

3、创建activity方法(教程4~5)
按钮响应:
创建两个activity,这里创建的一个为activity01,另外一个为otheractivity。
通过intent响应按钮触发动作。
通过intent在两个activity间传递数据。
package main.activity01; import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.text.method.KeyListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; /***************************************************
* 创建activity要点
* 1.一个activity就是一个类,并且这个activity要继承Activity
* 2.需要重写onCreate方法
* 3。每一个activity都需要在AndroidManifest里面注册
* 4.为activity添加必要的控件
* */
public class Activity01 extends Activity {
private Button mybutton=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity01);
mybutton = (Button)findViewById(R.id.button1);
mybutton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v)
{
//创建一个intent对象
Intent intent = new Intent();
intent.setClass(Activity01.this, otheractivity.class);
Activity01.this.startActivity(intent);
}
});
}
}
package main.activity01; import android.app.Activity;
import android.os.Bundle; public class otheractivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context="${relativePackage}.${activityClass}" > <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="copener" /> </RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context="${relativePackage}.${activityClass}" > <TimePicker
android:id="@+id/timePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="main.activity01"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".Activity01"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> <activity
android:name=".otheractivity"
android:label="@string/otheractivity_name" >
</activity>
</application> </manifest>
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">activity01</string>
<string name="hello_world">copener first Android APP</string>
<string name="otheractivity_name">otheractivity</string> </resources>
############################################################################
蓝牙知识:
主模块:主动搜索从模块,建立连接
从模块:不能主动建立连接,只能等别人连接自己
主从一体:能够在主机和从机模式间切换,即可做主机也可作从机
配对码是从机产生,主机端要输入同样配对码才能进行通信。有部分模块是不需要配对码的。
相关资料帖子:
http://blog.csdn.net/kangear/article/details/37612919
http://blog.csdn.net/a1031359915/article/details/21465195
http://jingyan.baidu.com/article/2f9b480d56d9c741ca6cc251.html
http://www.bubuko.com/infodetail-653603.html
自动配对
http://immortal.haotui.com/thread-566-1-1.html
############################################################################
五、从机AT指令集
注意:从机的AT指令不带回车符
1、测试通讯
发送:AT(返回OK,一秒左右发一次)
返回:OK
2、改蓝牙串口通讯波特率
发送:AT+BAUD1
返回:OK1200
发送:AT+BAUD2
返回:OK2400
……
1---------1200
2---------2400
3---------4800
4---------9600
5---------19200
6---------38400
7---------57600
8---------115200
9---------230400
A---------460800
B---------921600
C---------1382400
不建议用在超过115200 的波特率,信号的干扰会使系统不稳定。
设置超过115200 后用电脑无法使用,要用单片机编程于高于115200 才能使用此波特率和 重新发AT 命令设低波
特率 用AT命令设好波特率后,下次上电使用不需再设,可以掉电保存波特率。
3、改蓝牙名称
发送:AT+NAMEname
返回:OKsetname
参数name:所要设置的当前名称,即蓝牙被搜索到的名称。20 个字符以内。
例:
发送AT+NAMEbill_gates
返回OKsetname
这时蓝牙名称改为bill_gates
参数可以掉电保存,只需修改一次。PDA 端刷新服务可以看到更改后的蓝牙名称。
4、改蓝牙配对密码
发送:AT+PINxxxx
返回:OKsetpin
参数xxxx:所要设置的配对密码,4 个字节,此命令可用于从机或主机。
从机是适配器或手
机弹出要求输入配对密码窗口时,手工输入此参数就可以连接从机。主蓝牙模块搜索从机后,
如果密码正确,则会自动配对,主模块除了可以连接配对从模块
外,其他产品包含从模块的
时候也可以连接配对,比如含蓝牙的数码相机,蓝牙GPS,蓝牙串口打印机,等等,特别地,
蓝牙GPS为典型例子
例:
发送AT+PIN8888
返回OKsetpin
这时蓝牙配对密码改为8888,模块在出厂时的默认配对密码是1234。
参数可以掉电保存,只需修改一次。
android-APP-bluetooth的更多相关文章
- 【转】Android:Bluetooth 的打开和关闭--不错
原文网址:http://www.ifeegoo.com/android-turn-on-and-turn-off-bluetooth.html 摘要:Android 中打开和关闭 Bluetooth ...
- android app 集成 信鸽推送
推送其实挺中意小米推送的,并经用户群占比还是比较大的,奈何拗不过php后端哥们的选型,就只好用信鸽推送了,期间接入过程中也是遇到不少问题,所以记录下来,以后如果还是用信鸽推送的话,估计看看以前的博客, ...
- Android Developer -- Bluetooth篇 开发实例之一 扫描设备
第一步:声明Bluetooth Permissions <!-- 设置蓝牙访问权限 --> <uses-permission android:name="android.p ...
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- Livecoding.tv 现正举行iOS及Android App设计比赛
近日,Livecoding.tv, 一个为世界各地的程序员提供在线实时交流的平台,在其网站上发布了一篇通知, 宣布从4月15日至5月15日,会为iOS和Android的开发者举办一场本地移动app设计 ...
- Android APP 简单高效的禁用横竖屏切换
默认情况下,Android APP的界面会随着手机方向的改变而改变,当手机处于竖屏状态,APP的界面也处于竖屏状态,而当手机处于横屏状态,APP也会自动切换到横屏状态.一般情况下APP的界面都是为竖屏 ...
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
相关:http://www.cnblogs.com/wytiger/p/5996876.html 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于 ...
- fir.im Weekly - 如何进行 Android App 性能优化
关于 Android App 的优化,@anly-jun 用 3 个月完成了这一系列文章,从 性能分析工具 到 ANR .Layout .消除卡顿 到 内存优化.内存分析工具大概十五六篇,并对此做一个 ...
- Android APP压力测试(三)之Monkey日志自动分析脚本
Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 ...
- Android APP压力测试(二)之Monkey信息自动收集脚本
Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...
随机推荐
- 执行时关闭标识位 FD_CLOEXEC 的作用
首先先回顾 apue 中对它的描述: ① 表示描述符在通过一个 exec 时仍保持有效(书P63,3.14节 fcntl 函数,在讲 F_DUPFD 时顺便提到) ② 对打开文件的处理与每个描述符的执 ...
- 进程和线程及Linux下的编程
一.概述 进程和线程网络上有一堆解释,我不喜欢抄袭,也不喜欢套用太教科书的说法.就以我自己的理解来说说进程和线程吧,当然自己的理解肯定不是很严谨,但是理解起来应该会比教科书快一点.进程和线程都可以认为 ...
- c语言函数指针
#include <stdio.h> typedef void (*intFunc)(int i); void test1(int age) { printf("test1:%d ...
- 循序渐进redis(一) —— redis的安装及可视化工具的使用
1.安装 注意事项: 1.安装gcc 2.编译带参数: make MALLOC=libc 2.可视化客户端工具 推荐使用RedisClient,提供了基本的CRUD以及过期设置等操作的图形化接口,在项 ...
- Ubuntu下mysql-server的安装
(1)更新 #apt-get update (2)安装 #apt-get install mysql-server 出现窗口设置"root"用户的密码为"456456&q ...
- java.io.IOException: Cannot run program "jad"
今天调试google tag manager, 需要看看google analytics source code,无奈没有源码,装个一个插件ejad 还是不行: java.io.IOException ...
- what is SVD and how to calculate it
http://web.mit.edu/be.400/www/SVD/Singular_Value_Decomposition.htm SVD是研究地震波运动极性化的一个方法.
- 访问本地Access 数据出错
访问本地的access数据库时,出现了OleDbException 10Aug2015 晚: 好像找到了问题所在, 虽然不知道背后深层次的原因 改用了C#, 然后command 语句里也update了 ...
- System.Web.Script.Serialization引用找不到的问题
之前在项目中要使用JavascriptSerializer这个类,需要引入System.Web.Script.Serialization命名空间,但是在添加引用中找不到这个命名空间,后来才得知Syst ...
- mySQL基本操作学习笔记(一)
...