android加速度传感器怎么使用 android加速度传感器怎么使用

android\u52a0\u901f\u5ea6\u4f20\u611f\u5668\u600e\u4e48\u4f7f\u7528

\u4f7f\u7528\u52a0\u901f\u5ea6\u4f20\u611f\u5668\u4e0e\u5176\u4ed6\u4f20\u611f\u5668\u7684\u65b9\u6cd5\u5927\u81f4\u76f8\u540c\uff0c\u901a\u8fc7\u8c03\u7528\u7cfb\u7edfAPI\u5c31\u53ef\u4ee5\u5b9e\u73b0\u3002\u5206\u4e3a\u4ee5\u4e0b\u51e0\u6b65\uff1a
1.\u83b7\u53d6SensorManager
2.\u4f7f\u7528SensorManager\u83b7\u53d6\u52a0\u901f\u5ea6\u4f20\u611f\u5668
3.\u521b\u5efa\u81ea\u5b9a\u4e49\u7684\u4f20\u611f\u5668\u76d1\u542c\u51fd\u6570\uff0c\u5e76\u6ce8\u518c
4.\u76f8\u5bf9\u5e94\u7684\uff0c\u5728\u5408\u9002\u4f4d\u7f6e\u5b9e\u73b0\u6ce8\u9500\u76d1\u542c\u5668\u7684\u8c03\u7528
\u7b80\u5355\u7684\u4ee3\u7801\u5982\u4e0b\uff1a
public class MainActivity extends Activity {

private static final String TAG = "SensorTest";

private SensorManager mSensorManager;
private Sensor mAccelerometer;
private TestSensorListener mSensorListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

initViews();

// \u521d\u59cb\u5316\u4f20\u611f\u5668
mSensorListener = new TestSensorListener();
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}

@Override
protected void onResume() {
super.onResume();
// \u6ce8\u518c\u4f20\u611f\u5668\u76d1\u542c\u51fd\u6570
mSensorManager.registerListener(mSensorListener, mAccelerometer, SensorManager.SENSOR_DELAY_UI);
}

@Override
protected void onPause() {
super.onPause();
// \u6ce8\u9500\u76d1\u542c\u51fd\u6570
mSensorManager.unregisterListener(mSensorListener);
}

private void initViews() {
mSensorInfoA = (TextView) findViewById(R.id.sensor_info_a);
}

class TestSensorListener implements SensorEventListener {

@Override
public void onSensorChanged(SensorEvent event) {
// \u8bfb\u53d6\u52a0\u901f\u5ea6\u4f20\u611f\u5668\u6570\u503c\uff0cvalues\u6570\u7ec40,1,2\u5206\u522b\u5bf9\u5e94x,y,z\u8f74\u7684\u52a0\u901f\u5ea6
Log.i(TAG, "onSensorChanged: " + event.values[0] + ", " + event.values[1] + ", " + event.values[2]);

}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
Log.i(TAG, "onAccuracyChanged");
}

}

}

\u4e00 \u4ecb\u7ecdSensor\u7c7b

SDK\u53ea\u6709\u4e00\u53e5\u4ecb\u7ecd\u201cClass representing a sensor. Use getSensorList(int) to get the list of available Sensors.\u201d\uff0c\u8868\u793a\u4e00\u4e2a\u611f\u5e94\u5668\u7684\u7c7b\uff0c\u53ef\u4ee5\u4f7f\u7528getSensorList\u65b9\u6cd5\uff08\u6b64\u65b9\u6cd5\u5c5e\u4e8e\u63a5\u4e0b\u6765\u8981\u8bb2\u7684SensorManager\uff09\u83b7\u5f97\u6240\u6709\u53ef\u7528\u7684\u611f\u5e94\u5668\uff0c\u8be5\u65b9\u6cd5\u8fd4\u56de\u7684\u662f\u4e00\u4e2aList

\u4e0b\u9762\u7684\u5217\u8868\u663e\u793a\u4e86\uff0cSensor\u6240\u63d0\u4f9b\u7684\u6240\u6709\u670d\u52a1
----------------------------------------------------------------------------------------------------------------------------------------------------------
Constants
int TYPE_ACCELEROMETER A constant describing an accelerometer sensor type. //\u4e09\u8f74\u52a0\u901f\u5ea6\u611f\u5e94\u5668 \u8fd4\u56de\u4e09\u4e2a\u5750\u6807\u8f74\u7684\u52a0\u901f\u5ea6 \u5355\u4f4dm/s2
int TYPE_ALL A constant describing all sensor types. //\u7528\u4e8e\u5217\u51fa\u6240\u6709\u611f\u5e94\u5668
int TYPE_GRAVITY A constant describing a gravity sensor type. //\u91cd\u529b\u611f\u5e94\u5668
int TYPE_GYROSCOPE A constant describing a gyroscope sensor type //\u9640\u87ba\u4eea \u53ef\u5224\u65ad\u65b9\u5411 \u8fd4\u56de\u4e09\u4e2a\u5750\u6807\u8f74\u4e0a\u7684\u89d2\u5ea6
int TYPE_LIGHT A constant describing an light sensor type. //\u5149\u7ebf\u611f\u5e94\u5668 \u5355\u4f4d lux \u52d2\u514b\u65af
int TYPE_LINEAR_ACCELERATION A constant describing a linear acceleration sensor type. //\u7ebf\u6027\u52a0\u901f\u5ea6
int TYPE_MAGNETIC_FIELD A constant describing a magnetic field sensor type. //\u78c1\u573a\u611f\u5e94 \u8fd4\u56de\u4e09\u4e2a\u5750\u6807\u8f74\u7684\u6570\u503c \u5fae\u7279\u65af\u62c9
int TYPE_ORIENTATION This constant is deprecated. use SensorManager.getOrientation() instead. //\u65b9\u5411\u611f\u5e94\u5668 \u5df2\u8fc7\u65f6 \u53ef\u4ee5\u4f7f\u7528\u65b9\u6cd5\u83b7\u5f97
int TYPE_PRESSURE A constant describing a pressure sensor type //\u538b\u529b\u611f\u5e94\u5668 \u5355\u4f4d \u5343\u5e15\u65af\u5361
int TYPE_PROXIMITY A constant describing an proximity sensor type. //\u8ddd\u79bb\u4f20\u611f\u5668
int TYPE_ROTATION_VECTOR A constant describing a rotation vector sensor type. //\u7ffb\u8f6c\u4f20\u611f\u5668
int TYPE_TEMPERATURE A constant describing a temperature sensor type //\u6e29\u5ea6\u4f20\u611f\u5668 \u5355\u4f4d \u6444\u6c0f\u5ea6

----------------------------------------------------------------------------------------------------------------------------------------------------------
\u6b64\u7c7b\u4e2d\u5305\u542b\u7684\u65b9\u6cd5\u90fd\u662fget\u578b\u7684 \u7528\u6765\u83b7\u53d6\u6240\u9009sensor\u7684\u4e00\u4e9b\u5c5e\u6027\uff0csensor\u7c7b\u4e00\u822c\u4e0d\u9700\u8981new\u800c\u662f\u901a\u8fc7SensorManager\u7684\u65b9\u6cd5\u83b7\u5f97

\u4e8c \u4ecb\u7ecdSensorManager\u7c7b

SDK\u89e3\u91ca\uff1a\u201cSensorManager lets you access the device's sensors. Get an instance of this class by calling Context.getSystemService() with the argument SENSOR_SERVICE.
Always make sure to disable sensors you don't need, especially when your activity is paused. Failing to do so can drain the battery in just a few hours. Note that the system will not disable sensors automatically when the screen turns off. \u201d
SensorManager \u5141\u8bb8\u4f60\u8bbf\u95ee\u8bbe\u5907\u7684\u611f\u5e94\u5668\u3002\u901a\u8fc7\u4f20\u5165\u53c2\u6570SENSOR_SERVICE\u53c2\u6570\u8c03\u7528Context.getSystemService\u65b9\u6cd5\u53ef\u4ee5\u83b7\u5f97\u4e00\u4e2asensor\u7684\u5b9e\u4f8b\u3002\u6c38\u8fdc\u8bb0\u5f97\u786e\u4fdd\u5f53\u4f60\u4e0d\u9700\u8981\u7684\u65f6\u5019\uff0c\u7279\u522b\u662fActivity\u6682\u5b9a\u7684\u65f6\u5019\uff0c\u8981\u5173\u95ed\u611f\u5e94\u5668\u3002\u5ffd\u7565\u8fd9\u4e00\u70b9\u80af\u80fd\u5bfc\u81f4\u51e0\u4e2a\u5c0f\u65f6\u5c31\u8017\u5c3d\u7535\u6c60\uff0c\u6ce8\u610f\u5f53\u5c4f\u5e55\u5173\u95ed\u65f6\uff0c\u7cfb\u7edf\u4e0d\u4f1a\u81ea\u52a8\u5173\u95ed\u611f\u5e94\u5668\u3002

\u4e09 \u5e38\u7528\u7684\u611f\u5e94\u5668

\uff081\uff09 \u52a0\u901f\u5ea6\u611f\u5e94\u5668
\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u611f\u5e94\u5668\u83b7\u5f97\u4e09\u4e2a\u6d6e\u70b9\u578b

x-axis
y-axis
z-axis

X Y Z\u5206\u522b\u5bf9\u5e94values[0]\u5230[2]
X\u8868\u793a\u5de6\u53f3\u79fb\u52a8\u7684\u52a0\u901f\u5ea6
Y\u8868\u793a\u524d\u540e\u79fb\u52a8\u7684\u52a0\u901f\u5ea6
Z\u8868\u793a\u5782\u76f4\u65b9\u5411\u7684\u52a0\u901f\u5ea6
\u4e0b\u9762\u5148\u770b\u4e00\u4e2a\u57fa\u672c\u7684\u83b7\u53d6\u52a0\u901f\u7684demo\uff0c\u5e0c\u671b\u5927\u5bb6\u597d\u597d\u6ce8\u610f\u4ee3\u7801\u4e2d\u7684\u6ce8\u91ca
\u505a\u7684\u5f88\u7b80\u5355\uff0c\u5c31\u662f\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u4e09\u4e2a\u65b9\u5411\u4e0a\u52a0\u901f\u5ea6\u7684\u503c

Android 是面向智能手机和其他便携式设备的最受欢迎的操作系统(OS)之一。它为多种传感器提供了标准的API 接口,包括加速度计。加速度计的标准API 定义了原始加速度数据的坐标系统。用户必须将从传感器中读取的原始数据转换为标准单位,并使其符合系统定义的坐标方向。本文介绍了Android 中的坐标系统是如何定义的,以及如何在Android 系统的驱动代码中对3 轴加速度计数据的方向和坐标进行转换。本文讨论的示例代码基于飞思卡尔的Android 2.2 和2.3 驱动程序,加速度计则以飞思卡尔的MMA8452Q 加速度传感器为例。
关键词:加速度计,传感器驱动,Android

一部智能手机或便携设备应具有Wi-Fi 和互联网功能,能够运行应用软件等诸多特征,而且一定会具有内置传感器。高端智能手机可能集成接近传感器,环境光传感器,3 轴加速度计,以及磁力计等多种传感器。 Android 2.3 添加了一些支持多种新型传感器的API,包括陀螺仪、旋转向量、线性加速度、重力和气压传感器等。应用软件可以使用这些新型传感器,将它们组合起来,就可以实现高精确度的高级运动检测功能。

3 轴加速度计或低g 值传感器是Android API 支持的传感器之一,具有特定的坐标系统,可以给应用程序提供标准的接口数据。坐标空间的定义与手机屏幕的默认方向有关

  • 濡備綍浣跨敤Android绯荤粺涓殑浼犳劅鍣鍔熻兘
    绛旓細1.鍔犻熷害浼犳劅鍣鍔犻熷害浼犳劅鍣鍙敤浜庢帶鍒跺睆骞曠殑鏂瑰悜銆傚綋鐢ㄦ埛鎶婅澶囨棆杞鍥炬椂锛岀郴缁熶細浣跨敤鍔犻熷害浼犳劅鍣ㄨ鍙栬澶囩殑瑙掑害锛岀劧鍚庤嚜鍔ㄦ棆杞睆骞曘傚湪娓告垙涓紝鍔犻熷害浼犳劅鍣ㄥ彲鐢ㄤ簬鎺у埗鐜╁瑙掕壊鐨勭Щ鍔紝姣斿鍦ㄨ禌杞︽父鎴忎腑浣跨敤鍊炬枩鏉ユ帶鍒舵苯杞︾殑鏂瑰悜銆備娇鐢ㄥ姞閫熷害浼犳劅鍣ㄧ殑鏂规硶锛歚java//鑾峰彇鍔犻熷害浼犳劅鍣⊿ensorManagersensorManager=(...
  • 濡備綍鎵撳紑鎵嬫満鍔犻熷害浼犳劅鍣鍛?
    绛旓細浠ユ櫤鑳芥墜鏈轰负渚嬶紝鎵撳紑鍔犻熷害浼犳劅鍣鐨勬楠ゅ彲鑳藉涓嬶細1. 杩涘叆鎵嬫満鐨“璁剧疆”鑿滃崟銆傝繖涓彍鍗曢氬父鍙互鍦ㄤ富灞忓箷涓婃壘鍒帮紝涔熷彲浠ラ氳繃涓嬫媺閫氱煡鏍忓苟鐐瑰嚮榻胯疆鎴栬缃浘鏍囪繘鍏ャ2. 鍦ㄨ缃彍鍗曚腑锛屽鎵“绯荤粺”鎴“鍏充簬鎵嬫満”绛夐夐」锛岃繖浜涢夐」鍙兘鍖呭惈鏈夊叧鎵嬫満纭欢鍜屼紶鎰熷櫒鐨勪俊鎭3. ...
  • android鍔犻熷害浼犳劅鍣ㄦ庝箞浣跨敤
    绛旓細3 杞鍔犻熷害璁℃垨浣巊 鍊浼犳劅鍣鏄Android API 鏀寔鐨勪紶鎰熷櫒涔嬩竴锛屽叿鏈夌壒瀹氱殑鍧愭爣绯荤粺锛屽彲浠ョ粰搴旂敤绋嬪簭鎻愪緵鏍囧噯鐨勬帴鍙f暟鎹傚潗鏍囩┖闂寸殑瀹氫箟涓庢墜鏈哄睆骞曠殑榛樿鏂瑰悜鏈夊叧
  • 濡備綍鍦android鐨勯┍鍔ㄧ▼搴忎腑瀵鍔犻熷害浼犳劅鍣鐨勬暟鎹繘琛屾柟鍚戝拰鍧愭爣鐨勮浆_鐧...
    绛旓細褰撹澶囧钩鏀惧湪妗屼笂鏀,骞朵互鍔犻熷害A m/s2 鏈濆ぉ绌虹殑鏂瑰悜鎺ㄥ姩鏃,鍔犻熷害鍊肩瓑浜嶢+9.81,杩欐槸鐢ㄨ澶囧姞閫熷害鍊(+A m/s2)鍑忓幓閲嶅姏鍔犻熷害鍊(-9.81 m/s2)寰楀埌鐨勩 琛1 鍒楀嚭浜嗕笌璁惧鐨勫悇涓綅缃浉瀵瑰簲鐨勪紶鎰熷櫒鐨勫姞閫熷害鍊艰鏁般傜敤鎴峰彲浠ョ敤涓嬭〃妫鏌ュ姞閫熷害璁$殑鏂瑰悜涓庣郴缁熷潗鏍囨槸鍚︿竴鑷淬 閫氳繃鍔犻熷害浼犳劅鍣璇诲彇3 杞村姞閫熷害鍊兼椂...
  • 鎵嬫満淇℃伅缃濡備綍鑾峰彇褰撳墠鎵嬫満鐨鍔犻熷害浼犳劅鍣淇℃伅
    绛旓細鍦ˋndroid骞冲彴涓婏紝寮鍙戜汉鍛樺彲浠ヤ娇鐢ˋndroidSensorAPI鏉ヨ闂姞閫熷害浼犳劅鍣銆備娇鐢ㄨ繖涓狝PI锛屾偍鍙互杞绘澗妫娴嬭澶囩殑鐗╃悊杩愬姩鍜屼綅缃紝骞跺湪搴旂敤涓娇鐢ㄨ繖浜涙暟鎹備互涓嬫槸涓浜涘熀鏈殑姝ラ鏉ヨ幏鍙栧綋鍓嶈澶囩殑鍔犻熷害浼犳劅鍣ㄤ俊鎭細1.鑾峰彇浼犳劅鍣ㄧ鐞嗗櫒棣栧厛锛屾偍闇瑕佽幏鍙栦紶鎰熷櫒绠$悊鍣ㄣ備紶鎰熷櫒绠$悊鍣ㄦ槸涓涓郴缁熸湇鍔★紝瀹冨厑璁告偍璁块棶鍚勭浼犳劅鍣...
  • 楦胯挋鍔犻熷害浼犳劅鍣鍏抽棴
    绛旓細鎸夌収浠ヤ笅姝ラ杩涜鎿嶄綔锛1銆佹墦寮鎵嬫満锛岃繘鍏ヨ缃2銆佸湪璁剧疆涓紝鎵惧埌骞剁偣鍑烩滃簲鐢ㄢ濇垨鈥滃簲鐢ㄧ鐞嗏濄3銆佸湪搴旂敤鍒楄〃涓紝鎵惧埌鎯宠绂佺敤鍔犻熷害浼犳劅鍣鏉冮檺鐨勫簲鐢ㄧ▼搴忥紝骞剁偣鍑昏繘鍏ヨ搴旂敤鐨勮鎯呴〉闈4銆佸湪搴旂敤璇︽儏椤甸潰涓紝鎵惧埌鈥滄潈闄愨濇垨鈥滃簲鐢ㄦ潈闄愨濋夐」锛岀偣鍑昏繘鍏ユ潈闄愯缃5銆佸湪鏉冮檺璁剧疆涓紝鏌ユ壘鐐瑰嚮鈥滀紶鎰熷櫒鈥濇垨...
  • Android浼犳劅鍣鐨勪娇鐢
    绛旓細浠Android1.5寮濮嬶紝绯荤粺鍐呯疆浜嗗澶氳揪鍏浼犳劅鍣ㄧ殑鏀寔锛屼粬浠垎鍒槸锛鍔犻熷害浼犳劅鍣锛坅ccelerometer锛夈侀檧铻轰华锛坓yroscope锛夈佺幆澧冨厜鐓т紶鎰熷櫒锛坙ight锛夈佺鍔涗紶鎰熷櫒锛坢agnetic field锛夈佹柟鍚戜紶鎰熷櫒锛坥rientation锛夈佸帇鍔涗紶鎰熷櫒锛坧ressure锛夈佽窛绂讳紶鎰熷櫒锛坧roximity锛夊拰娓╁害浼犳劅鍣紙temperature锛夈1.Android鎵鏈夌殑浼犳劅鍣ㄩ兘褰...
  • 瀹夊崜涓鎬庝箞椹卞姩鍔犻熷害浼犳劅鍣?
    绛旓細sensor 锛鍔犻熶紶鎰熷櫒瀹炰緥锛屽疄鐜版憞涓鎽囦娇鐢ㄧ殑鏄痑ccelerateSensor rate :鎰熷簲鍣鍙嶅簲閫熷害锛屾湁鍥涗釜甯搁噺鍏遍夋嫨 SENSOR_DELAY_NORMAL:鍖归厤灞忓箷鏂瑰悜鐨勫彉鍖栵紝榛樿浼犳劅鍣ㄩ熷害 SENSOR_DELAY_UI锛氬尮閰嶇敤鎴锋帴鍙 濡傛灉鏇存柊UI寤鸿浣跨敤SENSOR_DELAY_GAME锛氬尮閰嶆父鎴忥紝娓告垙寮鍙戝缓璁娇鐢⊿ENSOR_DELAY_FASTEST.锛氬尮閰嶆墍鑳借揪鍒扮殑鏈蹇 鏍...
  • 鎵嬫満鍔犻熷害浼犳劅鍣ㄦ庝箞浣跨敤
    绛旓細鍔犻熷害浼犳劅鍣鏄竴绉嶅叧閿殑娴嬮噺宸ュ叿锛屽畠閫氳繃娴嬮噺浠嬭川鍙樺舰骞惰浆鍖栦负鐢靛帇杈撳嚭锛屼互妫娴嬪姞閫熷害銆傚叾涓昏缁勬垚閮ㄥ垎鍖呮嫭璐ㄩ噺鍧椼侀樆灏煎櫒銆佸脊鎬у厓浠躲佹晱鎰熷厓浠跺拰鑷傚簲鐢佃矾銆傚湪姹借溅琛屼笟涓紝鐗瑰埆鏄湪娌归棬浼犳劅鍣ㄧ殑搴旂敤涓紝鍔犻熷害浼犳劅鍣ㄦ壆婕旂潃鑷冲叧閲嶈鐨勮鑹层傚畠琚箍娉涘簲鐢ㄤ簬姹借溅鐨勫畨鍏ㄧ郴缁燂紝濡傚畨鍏ㄦ皵鍥娿侀槻鎶辨鍒跺姩绯荤粺锛圓BS...
  • 瀹夊崜涓鎬庝箞椹卞姩鍔犻熷害浼犳劅鍣?
    绛旓細鎽囦竴鎽囪繖鍔熻兘鎵嶇敤鍒伴熷害浼犳劅鍣紝鑰屼笂浼犲湴鐞嗕綅缃腑瑕佹湁GPS鍔熻兘灏卞彲浠ヤ簡锛屼袱鑰呭姛鑳戒笉涓鏍凤紝浣嗘槸浣犳病鏈夐┍鍔紝鎵嬫満绯荤粺鏄笉鑳借瘑鍒鍔犻熷害浼犳劅鍣鐨勶紝鏄庣櫧锛屾墍浠ヤ綘閲嶄笅涓郴缁熷惂锛岃鍖归厤鎵嬫満鐨勩
  • 扩展阅读:加速度传感器手机app ... 手机测量加速度的软件 ... 手机加速度传感器下载 ... 感应开关接线图大全 ... 测量加速度传感器app ... 加速度传感器软件下载 ... 换个传感器多少钱一个 ... 加速度计下载 ... 华为加速度传感器在哪 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网