要使用Android陀螺儀須先下載sensorsimulator-2.0-rc1
1.解壓縮到C:\sensorsimulator-2.0-rc1,
2.開啟資料夾「C:\sensorsimulator-2.0-rc1\bin」找到「sensorsimulator-2.0-rc1.jar」
3.記得要先將模擬器打開
4.將資料夾「C:\sensorsimulator-2.0-rc1\bin」底下的「sensorsimulator-2.0-rc1.apk」複製到
I:\eclipse\android-sdk-windows\platform-tools 下
5.開啟cmd 指向你的eclipse磁碟機 打上cd eclipse\android-sdk-windows\platform-tools
6.接著 輸入adb install sensorsimulator-2.0-rc1.apk
7.出現「Success」表示安裝成功
8.到主目錄會出現
一.使用模擬器 / 取得感測器服務 / 與感測器連線 /建立onResume()和onPause()
1.解壓縮到C:\sensorsimulator-2.0-rc1,
2.開啟資料夾「C:\sensorsimulator-2.0-rc1\bin」找到「sensorsimulator-2.0-rc1.jar」
3.記得要先將模擬器打開
4.將資料夾「C:\sensorsimulator-2.0-rc1\bin」底下的「sensorsimulator-2.0-rc1.apk」複製到
I:\eclipse\android-sdk-windows\platform-tools 下
5.開啟cmd 指向你的eclipse磁碟機 打上cd eclipse\android-sdk-windows\platform-tools
6.接著 輸入adb install sensorsimulator-2.0-rc1.apk
7.出現「Success」表示安裝成功
8.到主目錄會出現
9.按「Testing」然後再按「Connect」
一.使用模擬器 / 取得感測器服務 / 與感測器連線 /建立onResume()和onPause()
二.implements SensorEventListener必須實作onAccuracyChanged和onSensorChanged
三. onResume()到onPause()之間,在這個時期的Activity是在所有的Activity的前面,並且直接跟使用者進行互動,所以這段時期指的就是Activity is running。 一個Activity能很頻繁的在resume及pause這兩個狀態切換。所以在onResume()及onPause()裡實作的程式應盡量精簡。
onCreate()是程式的初始化動作,onDestory()就是將onCreate()時所要來的資料做釋放的動作,onPause()將需要保存的資料進行保存,onResume()把保存的資料取回使用。
先在AndroidManifest.xml中設定權限
</application>
<!-- 新增INTERNET的權限 -->
<uses-permission android:name="android.permission.INTERNET"/>
接著XML設定
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/xyz"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<ImageView
android:id="@+id/img"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher" />
</LinearLayout>
java主介面
package com.demo.android.SensorA;
//使用模擬器
import org.openintents.sensorsimulator.hardware.Sensor;
import org.openintents.sensorsimulator.hardware.SensorEvent;
import org.openintents.sensorsimulator.hardware.SensorEventListener;
import org.openintents.sensorsimulator.hardware.SensorManagerSimulator;
import android.app.Activity;
import android.hardware.SensorManager;
/*在實機上
import java.util.List;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;*/
import android.os.Bundle;
import android.widget.ImageView;
//import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
//要使用感測器必須實作SensorEventListener介面
public class SensorAActivity extends Activity implements SensorEventListener {
/** Called when the activity is first created. */
//private SensorManager sensorManager; //在實機上
private SensorManagerSimulator sensorManager; //使用模擬器
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//在實機上
//取得感測器服務(Sensor service)
//sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);//在實機上
//使用模擬器
//取得感測器服務(Sensor service)
sensorManager = SensorManagerSimulator.getSystemService(this,SENSOR_SERVICE);
//與感測模擬器連線
sensorManager.connectSimulator();
}
@Override
protected void onResume() {
super.onResume();
//註冊感應器
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super.onPause();
//解除感應器註冊
//在實機上
//解除感應器註冊
//sensorManager.unregisterListener(this);
//使用模擬器
//解除感應器註冊
sensorManager.unregisterListener(this);
//與感測模擬器斷線
sensorManager.disconnectSimulator();
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
//event:onSensorChanged傳入sensor的數值
float[] values = event.values;
//讀取感測器x軸,y軸,z軸的數值
String x = "X:" + String.valueOf(values[0])+"\n";
String y = "Y:" + String.valueOf(values[1])+"\n";
String z = "Z:" + String.valueOf(values[2])+"\n";
//顯示x軸,y軸,z軸在TextView上
TextView xyz=(TextView)findViewById(R.id.xyz);
xyz.setText(x+y+z);
ImageView img=(ImageView)findViewById(R.id.img);
//取得ImageView Layout的參數例如寬、高
LayoutParams params = (LayoutParams)img.getLayoutParams();
//利用X軸的數值設定imageview的寬、高,讓imageview放大縮小
params.width=(int)Math.abs(values[0])*20;
params.height=(int)Math.abs(values[0])*20;
//更新imageview的layout
img.setLayoutParams(params);
}
}
妳好,我在
回覆刪除資料夾C:\sensorsimulator-2.0-rc1\bin」底下
並沒有看到sensorsimulator-2.0-rc1.apk
只有SensorRecordFromDevice-2.0-rc1.apk
sensorsimulator-2.0-rc1(jar)
SensorSimulatorSettings-2.0-rc1.apk
這三個