###前提・実現したいこと
androidアプリでウィジェットから加速度センサーを使いたいのですが、
ウィジェットでセンサー起動させる方法がわかりません。
センサー起動方法または、参考になるサイト等がありましたら教えてください。
加速度センサーは起動できています。
###発生している問題・エラーメッセージ
エラーメッセージは出ていません
###該当のソースコード
import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.WindowManager; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import java.util.List; public class MainActivity extends Activity implements Runnable, SensorEventListener { SensorManager sm; TextView tv; Handler h; float gx, gy, gz; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); setContentView(ll); tv = new TextView(this); ll.addView(tv); h = new Handler(); h.postDelayed(this, 500); } @Override public void run() { tv.setText("X-axis : " + gx + "\n" + "Y-axis : " + gy + "\n" + "Z-axis : " + gz + "\n"); h.postDelayed(this, 500); } @Override protected void onResume() { super.onResume(); sm = (SensorManager)getSystemService(SENSOR_SERVICE); List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ACCELEROMETER); if (0 < sensors.size()) { sm.registerListener(this, sensors.get(0), SensorManager.SENSOR_DELAY_NORMAL); } } @Override protected void onPause() { super.onPause(); sm.unregisterListener(this); } @Override protected void onDestroy() { super.onDestroy(); h.removeCallbacks(this); } @Override public void onSensorChanged(SensorEvent event) { gx = event.values[0]; gy = event.values[1]; gz = event.values[2]; if(gx <= -1) { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 0.0f; //輝度暗く getWindow().setAttributes(lp); } else if(gx >= 1){ WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 1.0f; //輝度明るく getWindow().setAttributes(lp); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。