安卓下怎么驱动加速度传感器? android加速度传感器怎么使用

\u5b89\u5353\u4e0b\u600e\u4e48\u9a71\u52a8\u52a0\u901f\u5ea6\u4f20\u611f\u5668\uff1f

\u76ee\u524d\u5f88\u591a\u5e94\u7528\u5df2\u7ecf\u5b9e\u73b0\u4e86\u6447\u4e00\u6447\u529f\u80fd\uff0c\u8fd9\u91cc\u901a\u8fc7\u8bb2\u89e3\u8be5\u529f\u80fd\u7684\u539f\u7406\u53ca\u5b9e\u73b0\u56de\u987e\u4e00\u4e0b\u52a0\u901f\u5ea6\u4f20\u611f\u5668\u7684\u4f7f\u7528:
1.\u9996\u5148\u83b7\u5f97\u4f20\u611f\u5668\u7ba1\u7406\u5668\u7684\u5b9e\u4f8b
sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);

2.\u901a\u8fc7\u4f20\u611f\u5668\u7ba1\u7406\u5668\u83b7\u5f97\u52a0\u901f\u4f20\u611f\u5668
accelerateSensor = getSensorManager(context).getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

3.\u6ce8\u518c\u52a0\u901f\u4f20\u611f\u5668\u7684\u76d1\u542c\u5668
sensorManager.registerListener(listener, sensor, rate)

\u53c2\u6570\u8bf4\u660e\uff1a
listener\uff1a\u52a0\u901f\u4f20\u611f\u5668\u76d1\u542c\u5668\u5b9e\u4f8b
sensor \uff1a\u52a0\u901f\u4f20\u611f\u5668\u5b9e\u4f8b\uff0c\u5b9e\u73b0\u6447\u4e00\u6447\u4f7f\u7528\u7684\u662faccelerateSensor
rate :\u611f\u5e94\u5668\u53cd\u5e94\u901f\u5ea6\uff0c\u6709\u56db\u4e2a\u5e38\u91cf\u5171\u9009\u62e9

SENSOR_DELAY_NORMAL:\u5339\u914d\u5c4f\u5e55\u65b9\u5411\u7684\u53d8\u5316\uff0c\u9ed8\u8ba4\u4f20\u611f\u5668\u901f\u5ea6
SENSOR_DELAY_UI\uff1a\u5339\u914d\u7528\u6237\u63a5\u53e3
\u5982\u679c\u66f4\u65b0UI\u5efa\u8bae\u4f7f\u7528SENSOR_DELAY_GAME\uff1a
\u5339\u914d\u6e38\u620f\uff0c\u6e38\u620f\u5f00\u53d1\u5efa\u8bae\u4f7f\u7528SENSOR_DELAY_FASTEST.\uff1a\u5339\u914d\u6240\u80fd\u8fbe\u5230\u7684\u6700\u5feb
\u6839\u636e\u60c5\u51b5\u9009\u62e9\uff0c\u4e00\u822c\u60c5\u51b5\u9009\u62e9\u7b2c\u4e00\u79cd\u5c31\u53ef\u4ee5

\u4f20\u611f\u5668\u76d1\u542c\u5668\uff1aSensorEventListener\u6709\u4e24\u4e2a\u56de\u8c03\u65b9\u6cd5
onSensorChanged(SensorEvent event)\u548conAccuracyChanged(Sensor sensor, int accuracy)

\u7b2c\u4e00\u4e2a\u662f\u4f20\u611f\u5668\u503c\u53d8\u5316\u7684\u76f8\u5e94\u65b9\u6cd5
\u7b2c\u4e8c\u4e2a\u662f\u53cd\u5e94\u901f\u5ea6\u53d8\u5316\u7684\u76f8\u5e94\u65b9\u6cd5
\u4e24\u4e2a\u65b9\u6cd5\u4f1a\u540c\u65f6\u88ab\u8c03\u7528

onSensorChanged(SensorEvent event) \u4ecb\u7ecd

nSensorChanged(SensorEvent event)
event\u7684\u5b9e\u4f8b\u7684values\u53d8\u91cf\u975e\u5e38\u91cd\u8981\uff0c\u6839\u636e\u4f20\u611f\u5668\u7684\u4e0d\u540c\uff0c\u91cc\u9762\u7684\u503c\u4ee3\u8868\u7684\u542b\u4e49\u4e5f\u4e0d\u76f8\u540c\uff0c\u4ee5\u52a0\u901f\u4f20\u611f\u5668\u4e3a\u4f8b\uff1a
values\u8be5\u53d8\u91cf\u7684\u7c7b\u578b\u662ffloat[]\u6570\u7ec4\uff0c\u6700\u591a\u6709\u4e09\u4e2a\u5143\u7d20:
float x = values[0] \u4ee3\u8868X\u8f74
float y = values[1] \u4ee3\u8868Y\u8f74
float z = values[2] \u4ee3\u8868Y\u8f74
X\u8f74\u7684\u65b9\u5411\u662f\u6cbf\u7740\u5c4f\u5e55\u7684\u6c34\u5e73\u65b9\u5411\u4ece\u5de6\u5411\u53f3\u3002\u5982\u679c\u624b\u673a\u4e0d\u662f\u6b63\u65b9\u5f62\u7684\u8bdd\uff0c\u8f83\u77ed\u7684\u8fb9\u9700\u8981\u6c34\u5e73\u653e\u7f6e\uff0c\u8f83\u957f\u7684\u8fb9\u9700\u8981\u5782\u76f4\u653e\u7f6e\u3002Y\u8f74\u7684\u65b9\u5411\u662f\u4ece\u5c4f\u5e55\u7684\u5de6\u4e0b\u89d2\u5f00\u59cb\u6cbf\u7740\u5c4f\u5e55\u7684\u5782\u76f4\u65b9\u5411\u6307\u5411\u5c4f\u5e55\u7684\u9876\u7aef\u3002\u5c06\u624b\u673a\u5e73\u653e\u5728\u684c\u5b50\u4e0a\uff0cZ\u8f74\u7684\u65b9\u5411\u662f\u4ece\u624b\u673a\u91cc\u6307\u5411\u5929\u7a7a\u3002
\u6211\u4eec\u5224\u65ad\u624b\u673a\u662f\u5426\u6447\u4e00\u6447\uff0c\u53ea\u8981x,y,z\u8f74\uff0c\u8fbe\u5230\u8bbe\u5b9a\u7684\u9600\u503c\u65f6\u5c31\u8868\u793a\u6447\u4e00\u6447\u3002
@Override
public void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
//values[0]:X\u8f74\uff0cvalues[1]\uff1aY\u8f74\uff0cvalues[2]\uff1aZ\u8f74
float[] values = event.values;

float x = values[0];
float y = values[1];
float z = values[2];

Log.i(TAG, "x:" + x + "y:" + y + "z:" + z);
Log.i(TAG, "Math.abs(x):" + Math.abs(x) + "Math.abs(y):" +Math.abs(y) + "Math.abs(z):" + Math.abs(z));
if(sensorType == Sensor.TYPE_ACCELEROMETER){
int value = 15;//\u6447\u4e00\u6447\u9600\u503c,\u4e0d\u540c\u624b\u673a\u80fd\u8fbe\u5230\u7684\u6700\u5927\u503c\u4e0d\u540c,\u5982\u67d0\u54c1\u724c\u624b\u673a\u53ea\u80fd\u8fbe\u523020
if(x >= value || x = value || y = value || z <= -value){
Log.i(TAG, "\u68c0\u6d4b\u5230\u6447\u52a8");
//\u64ad\u653e\u52a8\u753b\uff0c\u66f4\u65b0\u754c\u9762\uff0c\u5e76\u8fdb\u884c\u5bf9\u5e94\u7684\u4e1a\u52a1\u64cd\u4f5c

}
}



\u5f88\u65e9\u4e4b\u524d\u6211\u5199\u8fc7\uff1a
\u4e3a\u4e86\u589e\u5f3a\u7a0b\u5e8f\u7684\u5065\u58ee\u6027\uff0c\u9700\u8981\u5224\u65ad\u5e76\u9632\u6b62\u6447\u4e00\u6447\u4e8b\u4ef6\u540c\u4e00\u65f6\u95f4\u591a\u6b21\u88ab\u89e6\u53d1\uff1a
float[] values = event.values;
float x = values[0];
float y = values[1];
float z = values[2];
Log.i(TAG, "onSensorChanged:" + "x:" + x + ",y:" + y + ",z:" + z);

if (x >= 15 || x = 15 || y = 15 || z <= -15) {
if (allowShake()) {//\u5224\u65ad\u662f\u5426\u4e3a\u91cd\u590d\u6643\u52a8
Log.e(TAG, "\u6447\u4e00\u6447\uff0c\u6447\u4e00\u6447");
new AllowShake().start();
} else {
Log.e(TAG, "2s \u540e\u518d\u6b21\u5141\u8bb8\u6447\u52a8");
}

\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");
}

}

}

摇一摇这功能才用到速度传感器,而上传地理位置中要有GPS功能就可以了,两者功能不一样,但是你没有驱动,手机系统是不能识别加速度传感器的,明白,所以你重下个系统吧,要匹配手机的。

你可以了解一下微信程序的数据结构直接把加速度原始数据输送给它。符合他的协议就好了。
方法有二,1,不知道微信有没有公开 ?一般是公开的。那就是手机驱动的数据结构,所以你仿手机驱动程序就好了。
2,监听软件的数据结构,就是破解软件的那套方法。

  • 灏忕背鎵嬫満鎬庝箞寮鍔犻熷害浼犳劅鍣
    绛旓細1. 杩涘叆鎵嬫満鐨“璁剧疆”鑿滃崟銆傝繖涓彍鍗曢氬父鍙互鍦ㄤ富灞忓箷涓婃壘鍒帮紝涔熷彲浠ラ氳繃涓嬫媺閫氱煡鏍忓苟鐐瑰嚮榻胯疆鎴栬缃浘鏍囪繘鍏ャ2. 鍦ㄨ缃彍鍗曚腑锛屽鎵“绯荤粺”鎴“鍏充簬鎵嬫満”绛夐夐」锛岃繖浜涢夐」鍙兘鍖呭惈鏈夊叧鎵嬫満纭欢鍜浼犳劅鍣鐨勪俊鎭3. 鍦ㄧ郴缁熸垨鍏充簬鎵嬫満鑿滃崟涓紝鎵惧埌“浼犳劅鍣”...
  • 瀹夊崜涓嬫庝箞椹卞姩鍔犻熷害浼犳劅鍣?
    绛旓細1.棣栧厛鑾峰緱浼犳劅鍣ㄧ鐞嗗櫒鐨勫疄渚 sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);2.閫氳繃浼犳劅鍣ㄧ鐞嗗櫒鑾峰緱鍔犻熶紶鎰熷櫒 accelerateSensor = getSensorManager(context).getDefaultSensor(Sensor.TYPE_ACCELEROMETER);3.娉ㄥ唽鍔犻熶紶鎰熷櫒鐨勭洃鍚櫒 sensorManager.registerListener(listener, ...
  • 瀹夊崜涓嬫庝箞椹卞姩鍔犻熷害浼犳劅鍣?
    绛旓細鎽囦竴鎽囪繖鍔熻兘鎵嶇敤鍒伴熷害浼犳劅鍣锛岃屼笂浼犲湴鐞嗕綅缃腑瑕佹湁GPS鍔熻兘灏卞彲浠ヤ簡锛屼袱鑰呭姛鑳戒笉涓鏍凤紝浣嗘槸浣犳病鏈夐┍鍔紝鎵嬫満绯荤粺鏄笉鑳借瘑鍒姞閫熷害浼犳劅鍣ㄧ殑锛屾槑鐧斤紝鎵浠ヤ綘閲嶄笅涓郴缁熷惂锛岃鍖归厤鎵嬫満鐨勩
  • android浼犳劅鍣璁惧椹卞姩鎬庝箞鍋氱殑
    绛旓細3 杞鍔犻熷害璁℃垨浣巊 鍊浼犳劅鍣鏄Android API 鏀寔鐨勪紶鎰熷櫒涔嬩竴锛屽叿鏈夌壒瀹氱殑鍧愭爣绯荤粺锛屽彲浠ョ粰搴旂敤绋嬪簭鎻愪緵鏍囧噯鐨勬帴鍙f暟鎹傚潗鏍囩┖闂寸殑瀹氫箟涓庢墜鏈哄睆骞曠殑榛樿鏂瑰悜鏈夊叧
  • 鎵嬫満鍔犻熷害浼犳劅鍣ㄦ庝箞浣跨敤
    绛旓細鏃犺鏄补闂ㄤ紶鎰熷櫒杩樻槸瀹夊叏绯荤粺鐨勫簲鐢紝鍔犻熷害浼犳劅鍣鐨勫伐浣滃師鐞嗕笉鍙樸傞氳繃娴嬮噺浠嬭川瀵瑰姞閫熷害鐨勫弽搴旓紝鍏惰璁″繀椤荤‘淇濆湪鍏抽敭瀹夊叏鏃跺埢鑳界珛鍗崇粰鍑哄噯纭殑淇″彿銆傜壒鍒槸瀵逛簬姹借溅瀹夊叏姘斿泭锛屽叾閮ㄧ讲鐨勭簿纭х洿鎺ュ叧绯诲埌涔樺鐨勭敓鍛藉畨鍏ㄣ傚帇闃诲紡浼犳劅鍣ㄥ湪姹借溅琛屼笟鐨勫箍娉涘簲鐢紝鍙嶆槧浜嗗叾鍦ㄦ妧鏈繘姝ュ拰鎬ц兘鎻愬崌鏂归潰鐨勬樉钁楄础鐚傝繖涓嶄粎...
  • 瀹夊崜鎵嬫満鐨浼犳劅鍣鍦ㄥ摢閲?
    绛旓細1銆佹墜鏈鸿缃-杈呭姪鍔熻兘-閿佸睆闃茶瑙 鍏抽棴鍗冲彲銆傛墜鏈浼犳劅鍣 妫娴瀹夊崜鎵嬫満涓婃墍鏈夊彲鐢鎰熷簲鍣锛屽苟閫氳繃鍥惧儚鐢熷姩鐨勫睍绀哄畠浠槸濡備綍杩愪綔鐨勩傛墜鏈轰紶鎰熷櫒涔熻兘澶熻瘑鍒鎵嬫満纭欢鏀寔鍝簺浼犳劅鍣紝骞舵彁渚涘鎴戜滑鏃ュ父鐢熸椿璧风潃閲嶈浣滅敤鐨勪紶鎰熷伐鍏枫傛墜鏈轰紶鎰熷櫒鍙兘妫娴嬪埌鍙樺寲銆傚鏋滃睘鎬ф病鏈夊彉鍖栵紝瀹冩樉绀虹殑娓╁害鍊笺佽窛绂诲笺佸厜鍜屽帇鍔涚殑...
  • 瀹夊崜鎵嬫満鑳藉惁閫氳繃otg绾垮鎺SB鍔犻熷害浼犳劅鍣
    绛旓細褰撶劧鍙互锛屼絾鏄蒋浠舵瘮杈冨鏉傦紒
  • android涓濡備綍閫氳繃鍔犻熷害浼犳劅鍣瀹炵幇鎽囦竴鎽囩殑鍔熻兘鍛
    绛旓細鎽囦竴鎽囧氨瑙﹀彂浜嬩欢锛岃鎬庝箞璋冪敤鎾斁鍣ㄧ被灏辨庝箞璋冪敤鍟婏紝鎾斁鍣ㄦ挱鏀剧粰瀹歶ri涓鍙ヨ瘽鎼炲畾鐨勫惂娉ㄦ剰鍔犱笂鏉冮檺
  • 鎬庝箞鍒╃敤鎵嬫満娴鍔犻熷害
    绛旓細濡傛灉鎯宠鎵嬫満鏉ユ祴鍔犻熷害鐨勮瘽锛屽彲浠ユ妸鎵嬫満閲岄潰鐨勬祴閫熷姛鑳芥墦寮锛屾墦寮浠ュ悗浣跨敤鏈熸潵娴嬮噺涓涓嬶紝杩欐牱鐨勮瘽灏卞彲浠ユ祴閲忓嚭瀹冪殑鍏蜂綋閫熷害鏄灏戠殑銆
  • 鍏充簬瀹夊崜鎵嬫満涓夎酱鍔犻熷害浼犳劅鍣鐨勪竴浜涢棶棰樸
    绛旓細閫氳繃鐗╃悊鐭ヨ瘑鐭ラ亾锛屾甯告儏鍐典笅锛屽湴鐞冩槸鏈変釜閲嶅姏鍔犻熷害鐨勶紝鍗虫槸9.8銆傛墍浠ワ紝鎵嬫満姝e父鏀剧疆鏃讹紝鏍规嵁鏀剧疆鐨勭姸鎬佷笉鍚岋紝姣斿锛屾墜鏈哄睆骞曟湞涓婏紝灞忓箷鏈濅笅锛岀珫鐩粹︹﹀姞閫熷害鐨勫间細浣滅敤鍦ㄤ笉鍚岀殑杞翠笂銆傛瘮杈冨父瑙佺殑搴旂敤灏辨槸锛屾墜鏈哄睆骞曠殑鏃嬭浆銆傝嚦浜庝綘璇寸殑鍚戝彸杩愬姩<0鐨勯棶棰橈紝濡傛灉浣犲湪鍋欰PP寮鍙戯紝鎺ㄦ祴鏄拰涓嬪眰寰楀埌鐨勫兼湁...
  • 扩展阅读:加速度传感器手机app ... 小型加速度传感器 ... 手机测量加速度的软件 ... 加速度测量app ... 手机加速度传感器下载 ... 手机usb驱动器app ... 传感器维修一下多少钱 ... 手机驱动器下载安装 ... 曲轴传感器多少钱一套 ...

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