1.
OpenIntents项目和可用资源介绍
[1].
项目介绍:OpenIntents项目的目的是提供一些开源的意图和接口,通过一些可以重用的组件让移动应用程序更加紧密的在一起工作。而且对于这些开源的项目,OpenIntents组织都会提供相应的源代码和示例程序展示项目如何使用。
[2].
项目资源:免费开放源代码下载地址在
www.;
讨论区:
在这里和开发人员一起讨论bug和新特征
翻译:帮助OpenIntents组织把开源项目翻译成不同语言
新特征:
在这里你可以浏览新特征请求哟列表
[3].
可重用组件 在你的应用中可以通过Intent重用下列组件:
OI About:
显示作者的概要信息
OI
File Manager:
提供“打开”和“另存为对话框”
OI
Safe:加密
OI
Update:
更新
[4].
开发人员工具
Sensor
simulator:模拟传感器输入(各种传感器,温度,湿度,光照,以及电磁电量和GPS)
Androidxml2po:使用这个工具能够让志愿者将你的程序翻译成各种不同的语言
2.
Sensor
Simulator使用介绍
[1].
下载,安装,配置 地址
Download it
运行SensorSimulator(bin/sensorsimulator-x.x.x.jar)程序 在Android模拟器上安装bin/SensorSimulatorSettings-x.x.x.apk
(adb install apk_path) 运行SensorSimulatorSettings,输入IP Address
和socket port
number,如下图所示:


至此,配置已经完成
[2].
测试配置 在Sensor
Emulator的Sensors选项卡中,激活你想要使用的传感器,如下图
在Android模拟器中选择Sensor Emulator
Settings里的Testing选项卡,单击Connect按钮,那么Android模拟器中相关传感器数据机会显示如下图所示,表示你已经连接成功,这时你还可以使用Sensor
Emulator中的手机移动来观测Android模拟器和Sensor
Emulator中的数据变化:
注意事项:如果要激活其它的传感器,那么必须要断开连接之后从新链接,才能够显示对应的数据
[3].
Sensor
Emulator使用介绍
Quick Settings
选项卡,支持快速设置传感器的数值
Sensor
Parameters选项卡,能够查看某个传感器的详细信息,并且进行高级设置,以及给出这个传感器的帮助信息
T Telnet
Emulator菜单 通过Telnet模拟器选项卡,向Android模拟器发送gps信息和电池电量信息

Additional Settings选项卡:完成Sensor Emulator端口号以及数据发送频率等的设置
Senario
Simulator:对设备所经历的状态进行记录和模拟 要对设备状态进行记录和模拟,首先在Android
设备上安装SensorRecordFromDevice.apk(bin/SensorRecordFromDevice.apk)
 按照提示操作,然后点击记录,那么我们就可以在Senario
Emulator中看到设备的各个状态,以及各个状态对应的传感器参数值。

[4].
使用介绍 不使用传感器模拟器类库时传感器使用的代码示例:
package ss.pku.edu.cn;
import java.util.List;
import org.openintents.sensorsimulator.hardware.SensorManagerSimulator;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class SensorDemoActivity
extends Activity implementsSensorEventListener
//SensorManagerSimulator使用
{
private SensorManager sensor_manager_original;
//SensorManagerSimulator的使用
private boolean is_available;
private TextView text_view;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sensor_manager_original
= (SensorManager)
getSystemService(Context.SENSOR_SERVICE);
//SensorManagerSimulator的使用
text_view = (TextView)
findViewById(R.id.tv);
is_available = false;
}
@Override
protected void onResume() {
super.onResume();
Sensor sensor=sensor_manager_original.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sensor_manager_original.registerListener(this,
sensor,SensorManager.SENSOR_DELAY_FASTEST);
//SensorManagerSimulator的使用
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
sensor_manager_original.unregisterListener(this);
////SensorManagerSimulator的使用
}
//SensorManagerSimulator使用
public void onAccuracyChanged(Sensor
sensor, int accuracy) {
// TODO Auto-generated method stub
}
public void onSensorChanged(SensorEvent event)
{
// TODO Auto-generated method stub
if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){
text_view.setText("x:" + event.values[0] + "y:"
+ event.values[1] + "z:" + event.values[2]);
}
}
} 在上面代码的基础之上,使用传感器模拟器类库的步骤为:
a.在构建路径中加入lib/sensorsimulator-lib-x.x.x.jar
b.将sensor_manager_original
= (SensorManager)
getSystemService(Context.SENSOR_SERVICE);用
sensor_manager_present =
SensorManagerSimulator.getSystemService(this,
SENSOR_SERVICE);sensor_manager_present.connectSimulator();代替
c.一般在onResume()方法中为传感器注册监听器,在onStop()方法中取消注册
d.实现SensorEventListener接口,重写onAccuracyChanged(Sensor sensor,in
accuracy)和onSensorChanged(SensorEvent
event)方法即可
注意点:大家可能会担心,我如果为了测试在代码中使用OpenIntents组织的SensorSimulator项目,那么到发布的时候还要大量修改源代码,这一点在OpenIntents组织设计SensorSimulator项目的时候就已经想到了,如果你连接的设备并不是传感器模拟器,那么SensorManagerSimulator实际上是调用SensorManager完成获取传感器数据的功能,所以这个时候不需要修改代码,依然获取的是设备上传感器的数据。
[5].
传感器的数据定义 有关传感器的数据定义,能够在Google
Devleloper网站上关于
Android SensorEvent reference的介绍中找到,在具体使用某一种传感器的时候,你可以参照这上面的资料了解某种传感器的数据是什么含义。
|