質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

1回答

1437閲覧

android ウィジェット センサー

serin

総合スコア13

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/08/09 05:51

###前提・実現したいこと
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) { } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

やったことありませんが、ContextがあるはずなのでContext#getSystemServiceが呼び出せるはずですね。

投稿2016/08/09 10:11

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問