問題タブ [sensormanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android SensorManagerのgetSensorList()とgetDefaultSensor()
Android用のゲームを書いていますが、加速度計を入力に使用できるようにしたいと考えています。
センサーを取得する方法は2つあります。1つはの最初の要素を使用する方法で、もう1つSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER)
はですSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
。
getDefaultSensor
ドキュメントには、「複合」センサーが返される可能性があると記載されているため、「生の」センサーが必要な場合はを使用する必要がありますgetSensorList
。
コンポジットセンサーと生センサーの違いは何ですか?これは加速度計にも当てはまりますか?複数または複合の加速度計を含むデバイスの経験がある人はいますか?(または他のセンサー?)
android - Android 2.3.6 の更新後、センサー マネージャーが期待どおりに動作しない
数日前、私は Android で最初のアプリを作成しました。基本的な概念は、近接センサーを監視することです。センサーに障害物がある場合は、カウンターをインクリメントします。カウンターがしきい値を超えると、アクションがトリガーされます。
サービスにセンサー監視SWを実装しました。このサービスは、10分ごとにアクティビティから呼び出され、CPUを目覚めさせ、サービスが停止している場合はサービスを開始します。
すべてが完璧で、市場で数千回のダウンロードを獲得し、高い評価を得ました. これは Android 2.3.3 までは問題ありませんでした。最近、私のモバイルが Android 2.3.6 にアップグレードされましたが、残念ながらアプリが期待どおりに動作しません。
画面がオフの場合、センサーリスナーはトリガーされません。正常に動作する場合もありますが、ほとんどの場合は動作しません。センサーでいくつかの入力を行った後、しばらくして画面をオンにすると、自動的にセンサーのすべてのトリガーが一度に呼び出され、カウンターがインクリメントしてアクションをトリガーします。
要約すると、画面がオフになるとセンサーリスナーが動作しません (Android 2.3.6 で)、これは Android 2.3.3 までは正常に動作していました。デバッガーを接続すると、電話がスリープ状態にならず、すべて正常に動作するため、問題を見つけることができません。私を助けてください 。
これが私のコードです。
10分ごとにサービスを呼び出す..
サービスで..
android - 同じ「タイプ」の複数の内部センサー
Android の SensorManager クラスは、指定されたタイプのセンサーのリストを返します。たとえば、デバイスに複数の内部温度センサー (TYPE_AMBIENT_TEMPERATURE) があるかどうか疑問に思っていますが、どうすればそれらを区別できますか? Sensor.getName() と Sensor.getVendor() だけで作業する必要がありますか?
android - Android:センサー値の適切な解釈
そのため、SensorEventのドキュメントを調べて、電話の特定の軸を基準にして、北の方向を把握する方法を理解しようとしています。座標系がどのように機能するかについての私の概念を説明する小さな画像を描きました。
したがって、世界座標がx、y、zであり、磁北がzに沿っており、yが空を指し、電話の座標がPx、Py、Pzである場合、投影を計算できるようにしたいと思います。各ベクトルを他のベクトルに変換します。
SENSOR_TYPE_ROTATION_VECTORは正しいもののように見えますが、これらすべての予測を取得するのに十分な情報が得られていないようです。ROTATION_VECTORを正規化し、それを気になる軸に追加してから、コンポーネントを引き出すことになっていますか?
もう1つの大きな単一センサーはSENSOR_TYPE_ORIENTATIONのようですが、これらの値をどう処理するかがわかりません。実世界の座標系のPyへの3つの投影を知りたい場合は、次のように、指定された座標に沿って[0、1、0]を回転します。
一般的な回転の式からこれらの式を取得したところ(単位ベクトルを回転しているため、中央の列を選択するだけです)。変数Pyの成分は、x、y、zのPyへの射影になると思いますが、それは逆になりますか?代わりに、3つの実世界の軸のそれぞれへのPyの投影ですか?
最後に、getRotationMatrixFromVector()オプションがあることに気づきました。これは、これらの予測を計算するように見えますが、完全に逆方向にあるかどうかはわかりません。xの3つの射影を知りたい場合。yとzをPyに追加しますが、回転行列の2番目の列、または2番目の行を取得しますか?
(おそらく非常に単純な質問の非常に言葉の多いバージョンについては申し訳ありませんが、将来の混乱している人々にとっては、私の主要な混乱のポイントである座標系について非常に明確にする方が良いと思います)。
android - Sensor Manager を使用して携帯電話の向き (ロール、ピッチ、ヨー) の角度を取得しますか?
Sensor Manager を使用して mobilePhone の向き (Roll、Pitch、Yaw) の角度を取得しようとしています。Android 開発者の Web サイトに書かれている方法によると、
getInclination(float[] I) getRotationMatrix(float[], float[], float[], float[]).` と getRotationMatrix(float[] R, float[] I、float[] 重力、float[] 地磁気)
傾斜行列 I と回転行列 R を計算し、ベクトルをデバイス座標系から > 直接正規直交基底として定義されるワールド座標系に変換します。` ブール値を返します。
私の質問は、言及された方法を使用して向きを取得する方法ですか?
コード
android - (SensorManager)getSystemService(SENSOR_SERVICE) がプレリリース Android デバイスでクラッシュする
タイトルの通り、
プレリリースの Android タブレットでクラッシュします。SENSOR_SERVICE は「センサー」として定義されており、他の点では見栄えがします。プレリリースのデバイスはリリースに非常に近いです、FWTW。
/system/etc/permissions に欠落している可能性のあるアクセス許可ファイルがあるかどうか、またはマニフェストまたは ??? でいくつかの uses-permission 値を指定する必要があるかどうか疑問に思っています。
問題を特定するために、別の (ASUS) タブレットでテスト アプリを実行します。しかし、有益な洞察は大歓迎です。
android - Android のテキスト フィールドにデータを表示する
EditText
加速度センサーで取得したデータをテキスト ボックスに表示するにはどうすればよいですか? 使用するだけで機能しますTextView
android - SensorManagerでアプリケーションがクラッシュする
加速度計を使いたいAndroidアプリを開発しています。しかし、私がメソッドを呼び出すときはいつでも:
アプリケーションがクラッシュします。
私のコードは:
Webで検索しましたが、解決策が見つかりませんでした。エミュレータではなく電話でアプリケーションをデバッグしています。なぜクラッシュするのか、どうすれば修正できるのか、この点で私を助けてください。
以下はlogcatエラーです:05-02 06:40:04.299:W / dalvikvm(9525):threadid = 1:キャッチされない例外でスレッドが終了します(group = 0x40018578)
ありがとう。
android - LogCat の Android SensorManager エラー
センサー マネージャーに問題があり、logcat にエラーがあります。この行でリスナーを登録すると:
logcat でこれらの行を受け取り、3 つのエラーが表示されます。
問題はありませんが、これらのエラーを回避するにはどうすればよいですか?
PS : 非推奨バージョンは使用しません。
android - SensorManager の登録解除が機能しない
私のアプリでは、光センサーと近接センサーを使用して携帯電話のポケット機能を検出し、検出が完了したら SensorManager の登録を解除しています。しかし、アプリによる CPU 使用率が 1 ~ 2 秒しか表示されない場合でも、バッテリーの使用率は常にアプリに no と表示されます。心配なリストの 1 つのアプリ。
SensorManager.unRegisterListener を使用し、SensorManager = null も設定しましたが、状況は同じままです。
いくつかのバグが原因で、センサーが正しく登録解除されていないことを読みました。センサーを正しく処分する良い方法はありますか?
ガイドをお願いします。オムカル・ガイサス
アプリのコード サンプルで更新 -
また、stackpverflow に関する 1 つの投稿からの 1 つの提案に従って、sensorManager = null を設定していますが、それでも役に立ちません。クリーンアップ コードを呼び出したにもかかわらず、バッテリーの使用量は依然として非常に高くなっています。アプリ自体は、1 つのブロードキャスト レシーバーと 1 つのアクティビティしかない非常にシンプルなアプリであるため、多くのバッテリーを使用するべきではありませんが、アクティビティ内で光センサーと近接センサーを呼び出すと、それらがバッテリー使用量の急増を引き起こしているのではないかと思います。理由はわかりませんが。
どんな助けも非常に高く評価されます。