没有合适的资源?快使用搜索试试~ 我知道了~
Android传感器编程入门.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 68 浏览量
2023-11-15
16:31:12
上传
评论 1
收藏 354KB DOCX 举报
温馨提示
试读
16页
Android传感器编程入门.docx
资源推荐
资源详情
资源评论
本讲内容:Android 传感器编程入门,分别包括加速度传感器
(accelerometer),陀螺仪(gyroscope),环境光照传感器(light),磁力传感
器(magnetic field),方向传感器(orientation),压力传感器(pressure),距
离传感器(proximity)和温度传感器(temperature)
一、前言
我很喜欢电脑,可是笔记本还是太大,笔记本电脑再小还是要弄个小包背起来的,
智能手机则不同,它完全就是一个手机,可以随意装在一个口袋里随身携带。因
此我在 2002 年左右时最喜欢玩装备是 Dell 的 PDA,2007 年的时候最喜欢玩的是
N73,而在 2010 年最喜欢玩的则是 Milestone。眼见着手机的功能越来越强,时
至今日智能手机甚至在某些方面已经强过了台式机和笔记本。本节课讲的就是智
能手机强过台式机和笔记本的地方:传感器。
2008 年的时候我很喜欢我的小白笔记本 Macbook,喜欢玩它的一个小软件,一拍
桌子,笔记本感受到了震动,它就转换了一个桌面出来,这让我像个小孩子一样
没事就拍拍桌子。这一功能这得益于苹果笔记本内置有传感器。
我不知道 iPhone 手机是不是第一个把各种各样的传感器运用在手机上的,不过
我知道 iPhone 是把传感器运用在手机上最成功的第一个。随后的 Android 系统
也内置了大量的传感器,这让 Android 系统手机和普通的诺基亚智能机和
Windows CE 智能机相比牛气了许多,在拥有了 Milestone 之后,我的 N73 就被仍
在抽屉的角落里了。
从 Android1.5 开始,系统内置了对多达八种传感器的支持,他们分别是:加速
度传感器(accelerometer),陀螺仪(gyroscope),环境光照传感器(light),
磁力传感器(magnetic field),方向传感器(orientation),压力传感器
(pressure),距离传感器(proximity)和温度传感器(temperature)。
利用这些传感器我们可以制作出各种有趣的应用程序和游戏。譬如在口袋里晃一
晃手机,手机就开始神不知鬼不觉的录音,不要着急这个很容易做,我们在本文
的结尾就一起制作这个小应用。
本讲的学习方式还是在实战中学习,需要提醒的是模拟器中无法模拟传感器,因
此你需要准备一款 Android 真机才能运行本讲的例子。
二、实例:手机传感器清单
我们还是先看程序后解释,
1、创建一个项目 Lesson37_HelloSensor , 主 Activity 名字叫
mainActivity.java
2、UI 布局文件 main.xml 的内容如下:
view source
print?
1
<?xml version="1.0" encoding="utf-8"?>
2
<LINEARLAYOUT xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
3
<TEXTVIEW android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/TextView01"
android:text="" />
4
</LINEARLAYOUT>
3、mainActivity.java 的内容如下:
view source
print?
01
package basic.android.lesson37;
02
03
import java.util.List;
04
05
import android.app.Activity;
06
import android.content.Context;
07
import android.hardware.Sensor;
08
import android.hardware.SensorManager;
09
import android.os.Bundle;
10
import android.widget.TextView;
11
12
public class MainActivity extends Activity {
13
14
/** Called when the activity is first created. */
15
@Override
16
public void onCreate(Bundle savedInstanceState) {
17
super.onCreate(savedInstanceState);
18
setContentView(R.layout.main);
19
20
//准备显示信息的 UI 组建
21
final TextView tx1 = (TextView)
findViewById(R.id.TextView01);
22
23
//从系统服务中获得传感器管理器
24
SensorManager sm = (SensorManager)
getSystemService(Context.SENSOR_SERVICE);
25
26
//从传感器管理器中获得全部的传感器列表
27
List<SENSOR> allSensors =
sm.getSensorList(Sensor.TYPE_ALL);
28
29
//显示有多少个传感器
30
tx1.setText("经检测该手机有" + allSensors.size() + "
个传感器,他们分别是:\n");
31
32
//显示每个传感器的具体信息
33
for (Sensor s : allSensors) {
34
35
String tempString = "\n" + " 设备名称:" +
s.getName() + "\n" + " 设备版本:" + s.getVersion() + "\n" + " 供
应商:"
36
+ s.getVendor() + "\n";
37
38
switch (s.getType()) {
39
case Sensor.TYPE_ACCELEROMETER:
40
tx1.setText(tx1.getText().toString(
) + s.getType() + " 加速度传感器 accelerometer" + tempString);
41
break;
42
case Sensor.TYPE_GYROSCOPE:
43
tx1.setText(tx1.getText().toString(
) + s.getType() + " 陀螺仪传感器 gyroscope" + tempString);
44
break;
45
case Sensor.TYPE_LIGHT:
46
tx1.setText(tx1.getText().toString(
) + s.getType() + " 环境光线传感器 light" + tempString);
47
break;
48
case Sensor.TYPE_MAGNETIC_FIELD:
49
tx1.setText(tx1.getText().toString(
) + s.getType() + " 电磁场传感器 magnetic field" + tempString);
50
break;
51
case Sensor.TYPE_ORIENTATION:
52
tx1.setText(tx1.getText().toString(
) + s.getType() + " 方向传感器 orientation" + tempString);
53
break;
54
case Sensor.TYPE_PRESSURE:
55
tx1.setText(tx1.getText().toString(
) + s.getType() + " 压力传感器 pressure" + tempString);
56
break;
57
case Sensor.TYPE_PROXIMITY:
58
tx1.setText(tx1.getText().toString(
) + s.getType() + " 距离传感器 proximity" + tempString);
59
break;
60
case Sensor.TYPE_TEMPERATURE:
61
tx1.setText(tx1.getText().toString(
) + s.getType() + " 温度传感器 temperature" + tempString);
62
break;
63
default:
64
tx1.setText(tx1.getText().toString(
) + s.getType() + " 未知传感器" + tempString);
65
break;
66
}
67
}
68
69
}
70
}</SENSOR>
4、连接真机 Milestone,编译并运行程序,显示结果如下:
剩余15页未读,继续阅读
资源评论
- cloud_cold2024-04-24资源很不错,内容和描述一致,值得借鉴,赶紧学起来!
悠闲饭团
- 粉丝: 150
- 资源: 3301
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功