Androidアプリでログイン後にGPSを取得する方法とは?

このQ&Aのポイント
  • Androidアプリ開発でログイン中とログイン完了を表示する方法とは?
  • ログイン処理とGPS取得処理をThreadで連携させる方法とは?
  • Androidアプリでログイン後にGPS取得サービスを開始する方法とは?
回答を見る
  • ベストアンサー

Android-Login後にGPS取得する

Androidのアプリを開発しています。 起動時にログイン処理を行い、それが成功したらGPSを定期的に取得するサービスの起動を行いたいと思っていますが、上手くいきません。 1.ログイン中は「ログイン中です」、完了したら「ログイン完了」と表示したいのですが   onCreateのは画面の表示前なので、これらの処理をするとしたらonCreateで、   ログインの処理を行うThreadを起動する。という考え方であってますでしょうか? 2.またログインをThreadで起動したとして、それが成功したらGps取得を行う処理実行。     という流れを考えていますが、定期的なGps取得のサービスはonCreateで実行しています。   そのため、「Loginが成功したら、Gps取得サービスを開始」という事ができません。   どのような作りにすれば、できますでしょうか?

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

ログインはどうなっているのでしょう。HttpUrlConnectionなどで通信していますか。あるいは、例えばWebViewなどからWebのログインページにアクセスをしていますか。ログイン処理がどのようになっているかによると思いますが……。 例えば、HTTP通信などでサーバーにアクセスするのであれば、その通信終了後にログインしたかどうかを確認してからGpsのスレッドなりをスタートさせれば良いと思います。

rinet8223
質問者

補足

解答ありがとうございます。 ログインは画面を表示した時に、自動的に端末情報をサーバーに送信して、成否のXMLが返ってくるという使用です。その際に、ログイン中、ログイン完了という表示を画面にしたいのですが、ActitivityのonCreateでそれを行うと、画面表示前にログイン完了になってしまいます。 ですのでサービスを起動してその中でログイン用のスレッドを立ち上げて、画面の変更をする処理をsendBroadcastで投げています。 これはおかしい実装のしかたでしょうか? サービスの中の処理からリアルタイムにActicityの画面描画を行いたいのですが他に方法が判りません。

関連するQ&A

  • Androidの並列処理(定期実行)

    http://d.hatena.ne.jp/shuji_w6e/20090701/1246459813 上記のURLを参考に、定期的にGPS情報を取得しDB登録するSampleプログラムを作成しました。 public void run() {    textView.setText(new Date().toString()); } } のrun()の中身をGPS取得する処理に変更しただけで、そこまでは上手くいきました。 このSampleは単一のActivityクラスだけで構成されていますが、この「定期的にGPS情報を取得する」という処理を別クラスにしたいと考えました。 そこでActivityを継承した、「GetGpsService」というクラスを作成し、そのクラスをmainのActivityから呼び出せばいいと思ったのですが、上手くいきません。 単純にmainのActivityで、GetGpsServiceのインスタンスをnewすれば、GetGpsServiceのonCreateが実行されて処理が実行されると思っていたのですが、newしてもクラス内のどこのBreakPointにも止まりませんでした。根本的な考え方が間違っているのでしょうが、別クラスにしたGPS情報の定期取得処理をmainのActivityから呼び出すには、どのようにしたら良いのでしょうか? 画面変遷がなくても、intent等を使う必要があるのでしょうか?

    • ベストアンサー
    • Java
  • Android-Service、アプリの再起動

    mainのActivityがあり、そこからGPSを定期取得するServiceを作成しました。 ここに  1.一定時間が経過したら、Service自身の再起動を行う   2.一定時間が経過したら、アプリケーションの再起動を行う 上記のような動作を考えているのですが、どのように実装するのがベストでしょうか? 1.に関しては、Timerで一定時間経過後に、ServiceのStop,Startを行うと思うのですが、どこにどのような記述で処理を実装したらいいのか判りません。 2.は検索しましたが、それにあたるようなヒントを得られませんでした。 もしご存じでしたら、ご教授お願いします。

  • Androidアプリにて標高を取得する方法について

    こんにちは。最近Androidのアプリ作りを始めた者です。 今、google maps APIを用いて、現在地の緯度、経度、住所、標高の情報を取得するAndroidアプリケーション作りに励んでいます。 location.Geocoderクラスを用いて、GPSにて取得した緯度、経度情報を渡して住所情報を取得することができたのですが、同様の方法で標高の値を取得する方法がわからず困っています。 Google Elevation APIというものがあるようですが、これはandroidアプリからは参照することができないように思います。 importするだけでAndroidで簡単に高度を取得できるAPIをご存知の方がいらっしゃったら教えてほしいです。 なお、GPSのgetAltitude()の方法もあるのですが、精度がいまいちなのと、今後現在地と目的地のプロファイルを表示するアプリも作りたいので、やはり緯度経度を渡せば標高を返してくれる方法を知りたいです。 どなたかよろしくお願いします。

  • スレッドダンプを自動取得したい

    スレッドダンプを自動取得したい 現在Windows環境でバッチを自動実行しているのですが ABENDした場合にスレッドダンプを取得したいです。 スレッドダンプの取得は、CTL+BREAKキーを押すことで取得できる そうなのですが、わざわざキーを押さなくても自動でキーを押したことにして 且つ実行結果をテキストにはかせる処理をバッチの中に盛り込みたいです。 調べ方が悪いのか、いくら調べてもやり方が見つかりません。 誰か知ってる方がおりましたら教えてもらえないでしょうか?

  • TimeOutの処理

    Androidで定期的にGPSを取得するというプログラムを作成しています。 このGPSなのですが、電波状況が悪いと長時間取得しにいったままになりますし、取得出来ない場合、そのまま終わってしまいます。 できればGPSを取得しに行って、10秒取得が出来なかったらTimeOutとしてエラーの処理を実行したいのですが、どのように実装すればいいのでしょうか?Webを探しましたが、参考になりそうなものが見つけられませんでした。

    • ベストアンサー
    • Java
  • Android-画面更新

    メインの画面となるActivityから別クラスで作成したサービスを起動して、そのサービスの中でスレッドを動作させています。そのスレッドから画面のTextViewの文字の変更を行うには、sendBroadcastをActivityで受け取って、activityの中で文字変更を行わせるしかないのでしょうか。 なんだかとても面倒くさい作りなので、これが普通の作り方だと思えません。 スレッドからもっと簡単にTextViewの文字列の変更をする方法はありませんか? 2週間調べてもわからなかったので、具体的なコードを教えていただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • Java
  • GPSを使ったサービスが充実してるサイト

    GPSを取得し、地図を表示するサイトを探しています。 NAVITIMEやマピオンなど、取得→表示はたくさんありましたが、無料会員は地図に制限があったりで使えません。携帯版ヤフーの地図もイマイチでした。 そこで質問なのですが、GPSを取得し地図を表示するサイト(地図の品質重視)をご存知ないでしょうか?便利で実際に使っているところなど教えていただけるとありがたいです。 できれば地図表示だけでなく、地図・乗換・時刻表などの総合サービスなども教えてほしいです。 よろしくお願いします。

  • RedhatLinux7.1で、ftpが「Login failed.」になってしまうんです。

    RedhatLinux7.1 を導入しています。 「ntsysv」コマンドを実行し、xinetdで管理されている 「gssftp」サービスを「ON」にしました。 電源再起動後、ftpサービスが起動されていることを確認したので、 ftpを実行したところ、以下のような現象になってしまい、 正しいログインユーザを入力すると、「Login failed.」になってしまいました。 (ちなみに、間違ったログインユーザを入力しても、同じ現象でした。) やはり、これは正常にftpサービスが動いてないのでしょうか? または、何らかの設定が悪いのでしょうか? ご教示くださいませ。m(._.)m ---------------- $ ftp 【自ホスト名】 Connected to xxxxxxxxxx.xxxxxxxxxx. 220 xxxxxxxxxx FTP server (Version 5.60) ready. 334 Using authentication type GSSAPI; ADAT must follow GSSAPI accepted as authentication type GSSAPI error major: Miscellaneous failure GSSAPI error minor: No credentials cache file found GSSAPI error: initializing context GSSAPI authentication failed 334 Using authentication type KERBEROS_V4; ADAT must follow KERBEROS_V4 accepted as authentication type Kerberos V4 krb_mk_req failed: You have no tickets cached Name (xxxxxxxxxx:xxxxx):【正しいログイン名】 530 Must perform authentication before identifying USER. Login failed. Remote system type is UNIX. Using binary mode to transfer files. ftp>

  • SH906iのGPSについて質問です。

    SH906iなのですが、待ち受け画面の電池マークの横(画面上の真ん中)にGPSというアイコンが表示されています。 このアイコンを消す方法をどなたかご存じないでしょうか? GPSを起動させている場合は必ず付くものなのでしょうか? その場合、GPS機能のサービス停止をすればいいのでしょうか? どなたかご教授の程よろしくお願いいたします。

  • androidのintentの使い方

    // //問題:LISTを押すと、エラーが出る、Intentの問題ですか? // public class FirstActivity extends Activity { // onCreateメソッド(画面初期表示イベントハンドラ) private static final String TAG ="[HelloWorld]"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);// スーパークラスのonCreateメソッド呼び出し setContentView(R.layout.firstlayout);// レイアウト設定ファイルの指定 ListView listview = (ListView) findViewById(R.id.fruitlist); // ListViewオブジェクト取得 listview.setOnItemClickListener(new ListItemClickListener()); // ListViewオブジェクトにクリックリスナーを関連付け } // アイテムクリックリスナー定義 class ListItemClickListener implements OnItemClickListener { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {// onItemClickメソッド(値選択時イベントハンドラ) ListView listview = (ListView) parent; // ListViewオブジェクト取得 String item = (String) listview.getItemAtPosition(position);// 選択された値取得 Log.d(item, TAG); Intent intent = new Intent(FirstActivity.this,SecondActivity.class);// インテントの生成(呼び出すクラスの指定) startActivity(intent);// 次のアクティビティの起動 } } } -------------------------------------------------------------------------- public class SecondActivity extends Activity { // onCreateメソッド(画面初期表示イベントハンドラ) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // スーパークラスのonCreateメソッド呼び出し setContentView(R.layout.main);// レイアウト設定ファイルの指定 } }

    • ベストアンサー
    • Java

専門家に質問してみよう