Android微信搖一搖

1.在onStart() 方法中獲取傳感器的SensorManager

@Override

protected void onStart() {

super.onStart();

//獲取 SensorManager 負責管理傳感器

mSensorManager = ((SensorManager) getSystemService(SENSOR_SERVICE));

if (mSensorManager != null) {

    //獲取加速度傳感器

    mAccelerometerSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

    if (mAccelerometerSensor != null) {

        mSensorManager.registerListener(this, mAccelerometerSensor, SensorManager.SENSOR_DELAY_UI);

    }

}
}

2.緊接著我們就要在Stop中注銷傳感器

@Override

protected void onStop() {

// 務必要在pause中注銷 mSensorManager

// 否則會造成界面退出后搖一搖依舊生效的bug

if (mSensorManager != null) {

    mSensorManager.unregisterListener(this);

}

super.onStop();

}

3.在step1中的注冊監(jiān)聽事件方法中, 我們傳入了當前Activity對象, 故讓其實現(xiàn)回調(diào)接口, 得到以下方法

@Override

public void onSensorChanged(SensorEvent event) {

int type = event.sensor.getType();

if (type == Sensor.TYPE_ACCELEROMETER) {

    //獲取三個方向值

    float[] values = event.values;

    float x = values[0];

    float y = values[1];

    float z = values[2];

    if ((Math.abs(x) > 17 || Math.abs(y) > 17 || Math

            .abs(z) > 17) && !isShake) {

        // TODO: 2016/10/19 實現(xiàn)搖動邏輯, 搖動后進行震動和聲音
    }

}

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

4.振動和聲音

震動權(quán)限

<uses-permission android:name="android.permission.VIBRATE"/>

MediaPlayer player = MediaPlayer.create(this, R.raw.weichat_audio);

player.start();

//獲取Vibrator震動服務

mVibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

//方式1

mVibrator.vibrate(1000);//振動一秒

//方式2

//這里使用的是一個長整型數(shù)組,數(shù)組的a[0]表示靜止的時間,a[1]代表的是震動的時間,然后數(shù)組的a[2]表示靜止的時間,a[3]代表的是震動的時間……依次類推下去,然后這里的代碼有一點小小的改變:

long[] patter = {1000, 1000, 2000, 50};

mVibrator.vibrate(patter, 0);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 開發(fā)之前 今天學習了傳感器, 腦子里就蹦出了微信的搖一搖, 于是鼓了鼓勇氣寫了寫.菜鳥一枚, 還望大神們多多指點 ...
    changer0閱讀 20,168評論 11 65
  • 知識要點: 1、傳感器的簡介及分類 1.1傳感器的概述及應用場景1.2傳感器分類介紹 2、方向傳感器獲取參數(shù)的實現(xiàn)...
    小慧sir閱讀 527評論 0 1
  • 知識要點: 1、傳感器的簡介及分類 1.1傳感器的概述及應用場景1.2傳感器分類介紹 2、方向傳感器獲取參數(shù)的實現(xiàn)...
    Anwfly閱讀 1,059評論 0 2
  • 效果最好的在文章最后給出,不想看分析的直接取最后的代碼即可。 Android端的搖一搖功能現(xiàn)在使用十分廣泛,從最開...
    kiplening閱讀 6,459評論 1 4
  • 一、需求 實現(xiàn)類似微信等的搖一搖效果搖動時 振動手機、播放音頻、彈出dialog提示搖動時不需要微信的動畫效果 二...
    CnPeng閱讀 2,816評論 0 1

友情鏈接更多精彩內(nèi)容