木南さん
お世話になります。近藤です。
以下、インラインで失礼します。
> 1) LogCatメニューを見て、エラーが発生していないか確認する。
>
> 通常で動作しているときと、エラーで動かなくなった前後にエラーが発生していないか確認します。地図などを表示していると、ネットワークの接続エラーなどが発生している場合があります。エラーが発生していたら、そのエラーの発生原因を確認します。
エラーログをみてみると、 実行時に「MapActivity Couldn't get connection factory client」という
エラーが出ています。これは標準のMapアプリケーションを実行した際にも発生しているので、
問題ないのかな?と思っています。その他は実行時にエラーは出ていません。
> 2) 自分が作成したアプリの処理が影響しているかを調べる。
>
> まずは、自分の書いたコードが原因なのか、環境設定などの問題なのかを切り分けるために、onLocationChangedのリスナー登録以外の処理をコメントアウトしてみます。onLocationChangedに、ログ出力だけを入れて、再現するか見てみます。
日本Androidの会のサンプルのonLocationChangedイベントでログ出力だけしてみましたが、
3回目以降イベントが発生していません。(ログが出力されない)
確認方法としては、以下の通りです。
1.アプリケーションを実行する。(EclipseからRun)
2.DDMSのEmulator Control.Location Controlsで、座標を入力してSendボタンを押下
->onLocationChangedイベントが発生(ログがDDMSのLogCatに出力される)
3.DDMSのEmulator Control.Location Controlsで、座標を変更してSendボタンを押下
->onLocationChangedイベントが発生(ログがDDMSのLogCatに出力される)
4.DDMSのEmulator Control.Location Controlsで、座標を変更してSendボタンを押下
->onLocationChangedイベントが発生しない(ログがDDMSのLogCatに出力されない)
※以降座標変更(Sendボタン押下)してもイベントが発生しない
> 3) 標準のアプリでも同じ現象が発生するかみてみる
>
> 標準で添付されている地図アプリのメニューで、My Locationを選択して、地図が移動するか確認する
>
> このあたりの条件が分かると、もう少し、別の観点で答えが出てくるかもしれません。
2)と同じで、1回目、2回目の座標送信(上記確認方法の2.,3.)では、Sendボタンを押下のタイミング
で地図の移動(再描画)が発生しました。ところが3回目の座標送信(上記確認方法の4.)を実行し
た際には地図の移動が発生しません。その後でMy Locationを押下すると座標が移動します。
私が作成したMapアプリ、標準の地図アプリで私が勘違いしているかもしれないので確認させて
下さい。
■確認1
標準の地図アプリでも、DDMSから位置情報をSendと送信した場合、その度にエミュレータ上
の地図が動くと思っています。(日本Androidの会のサンプルもそういうものだと認識しています)
実は、この認識が間違っていますでしょうか?
標準の地図アプリでもMy Locationを押下・処理を実行することで位置情報を取得・再描画して
いるように見えます。私のやりたいことは、一定時間毎(例えば1秒に1回)に位置情報を取得
したいと思っています。(プログラム的には、Timerで位置情報の取得を実行するイメージ)
■確認2
標準の地図アプリのMy Locationを押下した際にどういう処理を実行しているのか知りたいと
思っています。ソースがあればと思うのですが、このアプリケーションのソースがどこからか
入手できないものでしょうか?
以上、よろしくお願い致します
追伸.
環境面の問題も疑い、Java、Andorid SDKをバージョンアップしました。
■環境
Windows XP SP3
Eclipse 3.4
J2SDK 1.6.0_14
Android SDK 1.5 R2