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间传递数据。

  1. package main.activity01;
  2.  
  3. import android.app.Activity;
  4. import android.content.DialogInterface;
  5. import android.content.DialogInterface.OnClickListener;
  6. import android.content.Intent;
  7. import android.os.Bundle;
  8. import android.text.method.KeyListener;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.View;
  12. import android.widget.Button;
  13. import android.widget.TextView;
  14.  
  15. /***************************************************
  16. * 创建activity要点
  17. * 1.一个activity就是一个类,并且这个activity要继承Activity
  18. * 2.需要重写onCreate方法
  19. * 3。每一个activity都需要在AndroidManifest里面注册
  20. * 4.为activity添加必要的控件
  21. * */
  22. public class Activity01 extends Activity {
  23. private Button mybutton=null;
  24. @Override
  25. protected void onCreate(Bundle savedInstanceState) {
  26. super.onCreate(savedInstanceState);
  27. setContentView(R.layout.activity01);
  28. mybutton = (Button)findViewById(R.id.button1);
  29. mybutton.setOnClickListener(new Button.OnClickListener() {
  30. public void onClick(View v)
  31. {
  32. //创建一个intent对象
  33. Intent intent = new Intent();
  34. intent.setClass(Activity01.this, otheractivity.class);
  35. Activity01.this.startActivity(intent);
  36. }
  37. });
  38. }
  39. }
  1. package main.activity01;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5.  
  6. public class otheractivity extends Activity {
  7.  
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. // TODO Auto-generated method stub
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.other);
  13. }
  14. }
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. tools:context="${relativePackage}.${activityClass}" >
  6.  
  7. <Button
  8. android:id="@+id/button1"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_alignParentBottom="true"
  12. android:layout_alignParentRight="true"
  13. android:layout_alignParentEnd="true"
  14. android:text="copener" />
  15.  
  16. </RelativeLayout>
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. tools:context="${relativePackage}.${activityClass}" >
  6.  
  7. <TimePicker
  8. android:id="@+id/timePicker1"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_alignParentLeft="true"
  12. android:layout_alignParentTop="true" />
  13.  
  14. </RelativeLayout>
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="main.activity01"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6.  
  7. <uses-sdk
  8. android:minSdkVersion="8"
  9. android:targetSdkVersion="21" />
  10.  
  11. <application
  12. android:allowBackup="true"
  13. android:icon="@drawable/ic_launcher"
  14. android:label="@string/app_name"
  15. android:theme="@style/AppTheme" >
  16. <activity
  17. android:name=".Activity01"
  18. android:label="@string/app_name" >
  19. <intent-filter>
  20. <action android:name="android.intent.action.MAIN" />
  21.  
  22. <category android:name="android.intent.category.LAUNCHER" />
  23. </intent-filter>
  24. </activity>
  25.  
  26. <activity
  27. android:name=".otheractivity"
  28. android:label="@string/otheractivity_name" >
  29. </activity>
  30. </application>
  31.  
  32. </manifest>
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.  
  4. <string name="app_name">activity01</string>
  5. <string name="hello_world">copener first Android APP</string>
  6. <string name="otheractivity_name">otheractivity</string>
  7.  
  8. </resources>

############################################################################

蓝牙知识:

主模块:主动搜索从模块,建立连接

从模块:不能主动建立连接,只能等别人连接自己

主从一体:能够在主机和从机模式间切换,即可做主机也可作从机

配对码是从机产生,主机端要输入同样配对码才能进行通信。有部分模块是不需要配对码的。

http://item.taobao.com/item.htm?spm=a230r.1.14.212.iOt1Tg&id=44264845452&ns=1&abbucket=11#detail&qq-pf-to=pcqq.c2c

相关资料帖子:

http://blog.csdn.net/kangear/article/details/37612919

http://blog.csdn.net/a1031359915/article/details/21465195

http://jingyan.baidu.com/article/2f9b480d56d9c741ca6cc251.html

http://wenku.baidu.com/link?url=C2euBL2_QjRkJkXXqB0NZeAty-kuarbSrSdKNVRz0mFm4iaBqRbdp9wqsjh1HCHxcDim3bo26Esbsq5jZZK_ayD7eVvpy_fOkaTyO9qM4sa

http://www.bubuko.com/infodetail-653603.html

自动配对

http://immortal.haotui.com/thread-566-1-1.html

############################################################################

http://wenku.baidu.com/link?url=W4CmKnDrHLRV6dwRtVNjP3YY_hhWdzt4qN5tV_ggIFfB3R8uqAEnCrjxRYAmgPr-sGz-tXDeUcmQQy3aiE3n-cXznf_cUePSYKWufab6bKO

五、从机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的更多相关文章

  1. 【转】Android:Bluetooth 的打开和关闭--不错

    原文网址:http://www.ifeegoo.com/android-turn-on-and-turn-off-bluetooth.html 摘要:Android 中打开和关闭 Bluetooth ...

  2. android app 集成 信鸽推送

    推送其实挺中意小米推送的,并经用户群占比还是比较大的,奈何拗不过php后端哥们的选型,就只好用信鸽推送了,期间接入过程中也是遇到不少问题,所以记录下来,以后如果还是用信鸽推送的话,估计看看以前的博客, ...

  3. Android Developer -- Bluetooth篇 开发实例之一 扫描设备

    第一步:声明Bluetooth Permissions <!-- 设置蓝牙访问权限 --> <uses-permission android:name="android.p ...

  4. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  5. Livecoding.tv 现正举行iOS及Android App设计比赛

    近日,Livecoding.tv, 一个为世界各地的程序员提供在线实时交流的平台,在其网站上发布了一篇通知, 宣布从4月15日至5月15日,会为iOS和Android的开发者举办一场本地移动app设计 ...

  6. Android APP 简单高效的禁用横竖屏切换

    默认情况下,Android APP的界面会随着手机方向的改变而改变,当手机处于竖屏状态,APP的界面也处于竖屏状态,而当手机处于横屏状态,APP也会自动切换到横屏状态.一般情况下APP的界面都是为竖屏 ...

  7. Android App的设计架构:MVC,MVP,MVVM与架构经验谈

    相关:http://www.cnblogs.com/wytiger/p/5996876.html 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于 ...

  8. fir.im Weekly - 如何进行 Android App 性能优化

    关于 Android App 的优化,@anly-jun 用 3 个月完成了这一系列文章,从 性能分析工具 到 ANR .Layout .消除卡顿 到 内存优化.内存分析工具大概十五六篇,并对此做一个 ...

  9. Android APP压力测试(三)之Monkey日志自动分析脚本

    Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 ...

  10. Android APP压力测试(二)之Monkey信息自动收集脚本

      Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...

随机推荐

  1. com.android.internal.os.ZygoteInit$MethodAndArgsCaller 解决

    好久没写博客了,带着点小愧疚来,添上几个字: 这是今天遇到的一个bug,之前也遇到过,为了后面方便,就记下. bug提示:com.android.internal.os.ZygoteInit$Meth ...

  2. 009-Scala的内部类实战详解

    009-Scala的内部类实战详解 Scala内部类详解 与java的区别 java的内部类是从属于外部类的 Scala的内部类是从属于对象的 内部类在调用方法的时候传递的内部类只能是由自己本身 欢迎 ...

  3. JSTL标签库的使用

    首先是四大标签库 核心 标签库 <%@ taglib uri="http://java.sun.com/jsp/jstl/core"%> 格式标签库 <%@ ta ...

  4. Python开发入门与实战21-订阅事件(subscribe)

    21. 订阅事件(subscribe) 新用户关注微信公众平台,将产生一个订阅事件,即subscribe事件,在新用户关注公众平台后为新用户提供一些简明扼要的公众号说明 事件推送(event): 接收 ...

  5. 关于.NET 的邮件发送类

    .NET 类库中已经有现成的封好的类库了,只要引用System.Net.Mail命名空间即可实现发邮件的功能 以下是代码 public class SendMail { private string ...

  6. 一些Layout的坑

    iOS这个东西,初学感觉,还好还好,然后一年之后再来修复一下初学的时候的代码,我只是感觉头很晕- - 别扶我. AutoLayout的坑,明明以前都没有的!!!升了iOS10就突然发现了这个坑,其实也 ...

  7. 使用checkbox做出radiobutton的效果

    首先分别使用不同name的checkbox放在同一个tr的两个td内.并为他们设置onclick事件来改变点击后状态. php: str[info]="<table align='ce ...

  8. MySQL数据库4 - 查看数据表

    一. 查看表的基本结构 语法:DESCRIBE/DESC TABLE_NAME 查询结果含义: Field: 字段名 Type: 字段类型 Null: 是否可以为空 Key: 是否编制索引 defau ...

  9. IntelliJ IDEA注册码

    1.打开IJ,help选项下的register 2. 选择Activation code 将注册码粘到内容框里,点击ok即可 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QT ...

  10. 主要由顶点容器构成的平面图形类(Shape)——(第一次作业Draw类定义升级)

    // https://github.com/orocos/orocos_kinematics_dynamics/blob/master/orocos_kdl/src/frames.hpp // Vec ...