0

私はJavaとAndroidにまったく慣れていないので、おそらく明らかな何かが欠けていると思います。向きセンサーをサンプリングし、その結果をSDCardのファイルに書き込んだり、画面のログに表示したりするアプリを作成しています。画面がオンになっている間は、すべて正常に動作します。画面が暗くなっても操作したいので、PARTIAL_WAKE_LOCKを取得するコードを追加しました。私の知る限り、画面が暗くなってもセンサーはまだサンプリングされていますが(ウェイクロックが機能していると思わせます)、結果はSDカードに書き込まれません。これが起こっていることだと思います。メニューキーを押して画面を再度起動すると、画面のログに、画面がオフのときに発生したすべての遷移が表示されるためです。しかし、SDカードに作成されたファイルを見ると、ファイルに記録される遷移は、画面がオンのときに発生した遷移のみです。私が試したファイルの書き方については(私はこれを正しく言っていると思います...)BufferedWriterでラップされたFileWriterとFileOutputStreamでラップされたFileWriter。最初は、Intent.ACTION_SCREEN_OFFのBroadcastReceiverを追加する回避策を学習するまで、ウェイクロックを使用しても方向センサーが機能していませんでした。取得したら、方向リスナーの登録を解除してから、再登録します。FileWriterを「登録解除」して、「再登録」する必要がありますか?奇妙な部分は、出力ファイルにIntent.ACTION_SCREEN_OFFを受信する前のすべての方向の変更と、画面の電源を入れ直したときにIntent.ACTION_SCREEN_ONを受信した後のすべての変更が含まれていることですが、その間には何もありません。

私はAndroid1.6用に書いています(私はG1を持っています)私のプロジェクトはSDK4を使用するように設定されています

4

1 に答える 1

0

ここで説明されているように、外部ストレージが利用可能かどうかを確認していますか? その時点で、単純に書き込めない可能性があります。ドキュメントには、外部ストレージ BroadcastReceiver のコードもあります。これを使用して、書き込み前にストレージが利用可能になるまで待つことができます。

于 2011-01-20T02:32:22.180 に答える