80,490
社区成员
发帖
与我相关
我的任务
分享package com.example.n_on;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager sm_L;
private Boolean doWrite;
float lux;
static float array=9999999;
static int i = 0;
private TextView mTextView,mTextView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView)findViewById(R.id.textView);
mTextView2= (TextView)findViewById(R.id.textView2);
sm_L = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
sm_L.registerListener( this,sm_L.getDefaultSensor(Sensor.TYPE_LIGHT),SensorManager.SENSOR_DELAY_GAME);
}
public void onSensorChanged(SensorEvent event) {
lux = event.values[0];//获取当前 光感值
mTextView.setText("数值" + lux);
//-------------------------------------------------------------------
for (; i < 10; i++) {
new Thread() {
public void run() {
try {
Thread.sleep(10000);
doWrite = true;
if (doWrite) {
array = lux;//锁定当前光感值
doWrite = false;
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
//---------------------------------------------------------------------------------------------
}
//当光线强度大于10s前的值时 播放声音。
if (lux>array){
playMusic();
}
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
private void playMusic() {
// 播放音乐
MediaPlayer mPlayer = MediaPlayer.create(MainActivity.this, R.raw.alarm);
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mPlayer.prepare();
} catch (Exception e) {
e.printStackTrace();
}
//理论上应该异步准备,在准备完成的回调函数中启动播放器
mPlayer.start();
}
}