APP下载

安卓内置方向传感器应用

2016-01-21王丽华

科技经济市场 2015年12期

王丽华

摘 要:基于安卓平台设计一款主要用安卓内置的方向传感器的指南针来让用户可以随时辨别方向的应用软件。

关键词:安卓平台;内置方向传感器;指南针

1 项目开发环境及工具

硬件环境:安卓4.0以上平台+PC机

软件环境:Eclipse Android编辑器+SDK集成环境

2 总体设计

项目所用到的传感器主要用到的两个继承类:Activity和View,两个接口:Runnable和SensorEventListener。

SensorManager是传感器的一个统一管理类,包括传感器的种类、接受的频率、精准度等。

SensorEventListener类是传感器的核心部分,想要在传感器改变时做处理,当前的Activity必须实现这个类,实现它的两个方法如下:

public void onAccuracyChanged(Sensor sensor,int accuracy):当传感器的精度发生改变时,调用这个方法,里面有传感器Sensor和精度accuracy。

public void onSensorChanged(SensorEvent event):当传感器被改变时调用这个方法,这个方法包含一个参数SensorEvent对象,该对象主要包括float的数组。把一些图片画在Canvas上,诸如指南针用到罗盘、方向指针和背景等等。这里要注意的是要写一个类CompassView继承View类,通过画笔把文字和图片画上去。根据传感器精度的改变来改变指南针的指向。

在Activity类中实现SensorEventListener接口,获取与传感器有关的类。进一步完善代码,添加各种方向精确到45°角的时候,具体指向时的度数显示等等。将编译好的软件置入安卓机中进行测试并记录测试结果,收集各种环境下所产生的Bug。调试程序并完善。

3 详细设计代码如下

项目所用到的包:

import java.util.List;

import android.app.Activity;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Matrix;

import android.graphics.Paint;

import android.os.Message;

import android.view.View;

注册传感器以及编写传感器监听类:

public class SensorDemoActivity extends Activity implements SensorEventListener{

初始化各项参数设置并注册传感器:

private CompassView compassView;

private boolean isRegisterSensor;

private SensorManager sManager;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

compassView=new CompassView(this);

setContentView(compassView);

isRegisterSensor=false;

获取SensorManager实例:

sManager = (SensorManager) getSystemService(SENSOR_SERVICE);

重写avtivity的onResume方法:

protected void onResume() {

super.onResume();

获得方向传感器:

TYPE_ORIENTATION

List sensorList =sManager.getSensorList(Sensor.TYPE_ORIENTATION);

注册传感器,参数表示当前的传感器时间、传感器及接收的频率:

登录APP查看全文