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

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

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

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2227閲覧

4G接続のandroidタブレットの位置情報を正確に屋外で追跡したい

atatatatata

総合スコア77

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/07/28 04:32

編集2017/07/28 04:38

現在FusedLocationApiで、アプリを作ったのですが、エミュレーターで手動で位置を操作すると、onLocationChanged()が呼び出されますが、実際に1kmほど歩いても、
実験した大学のある一点をさしたまま、ピンが移動されることはありませんでした。

基地局がそこにしかないからそのような表示になるのでしょうか?

どうすればいいでしょうか?

java

1 2 3public class LocationActivity extends FragmentActivity implements 4 GoogleApiClient.ConnectionCallbacks, 5 GoogleApiClient.OnConnectionFailedListener, 6 LocationListener { 7 8 9 10 11 @Override 12 protected void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main); 15 16 17 18 // LocationRequest を生成して精度、インターバルを設定 19 locationRequest = LocationRequest.create(); 20 21 locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); 22 locationRequest.setInterval(50000); 23 locationRequest.setFastestInterval(1000); 24 locationRequest.setSmallestDisplacement(1); 25 26 // locationRequest.setInterval(5000).setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 27 //locationRequest.setExpirationDuration();このリクエストの期間をミリ秒単位 28 //locationRequest.setExpirationTime();起動後の要求の有効期限 29 //locationRequest.setMaxWaitTime();複数の場所を一度に配信できます。 30 //locationRequest.setNumUpdates();新しい場所が1つだけ必要な場合 31 //locationRequest.setPriority(1);//要求の優先順位を設定 32 33 34 fusedLocationProviderApi = LocationServices.FusedLocationApi; 35 36 mGoogleApiClient = new GoogleApiClient.Builder(this) 37 .addApi(LocationServices.API) 38 .addConnectionCallbacks(this) 39 .addOnConnectionFailedListener(this) 40 .build(); 41 42 // 測位開始 43 Button buttonStart = (Button)findViewById(R.id.button_start); 44 buttonStart.setOnClickListener(new View.OnClickListener() { 45 @Override 46 public void onClick(View v) { 47 startFusedLocation(); 48 } 49 }); 50 51 // 測位終了 52 Button buttonStop = (Button)findViewById(R.id.button_stop); 53 buttonStop.setOnClickListener(new View.OnClickListener() { 54 @Override 55 public void onClick(View v) { 56 stopFusedLocation(); 57 } 58 }); 59 60 } 61 62 63 private void startFusedLocation(){ 64 if (!mResolvingError) { 65 mGoogleApiClient.connect(); 66 67 } else { 68 } 69 70 } 71 72 private void stopFusedLocation(){ 73 // Disconnecting the client invalidates it. 74 mGoogleApiClient.disconnect(); 75 } 76 77 @Override 78 protected void onStart() { 79 super.onStart(); 80 81 } 82 83 @Override 84 protected void onStop() { 85 super.onStop(); 86 stopFusedLocation(); 87 } 88 89 90 @Override 91 public void onConnected(Bundle bundle) { 92 93 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 94 return; 95 } 96 Location currentLocation = fusedLocationProviderApi.getLastLocation(mGoogleApiClient); 97 98 if (currentLocation != null && currentLocation.getTime() > 20000) { 99 location = currentLocation; 100 101 textLog += "---------- onConnected \n"; 102 textLog += "Latitude=" + String.valueOf(location.getLatitude()) + "\n"; 103 textLog += "Longitude=" + String.valueOf(location.getLongitude()) + "\n"; 104 textLog += "Accuracy=" + String.valueOf(location.getAccuracy()) + "\n"; 105 textLog += "Altitude=" + String.valueOf(location.getAltitude()) + "\n"; 106 textLog += "Time=" + String.valueOf(location.getTime()) + "\n"; 107 textLog += "Speed=" + String.valueOf(location.getSpeed()) + "\n"; 108 textLog += "Bearing=" + String.valueOf(location.getBearing()) + "\n"; 109 textView.setText(textLog); 110 111 112 } else { 113 // バックグラウンドから戻ってしまうと例外が発生する場合がある 114 try { 115 116 fusedLocationProviderApi.requestLocationUpdates(mGoogleApiClient, locationRequest, this); 117 Executors.newScheduledThreadPool(1).schedule(new Runnable() { 118 @Override 119 public void run() { 120 fusedLocationProviderApi.removeLocationUpdates(mGoogleApiClient, LocationActivity.this); 121 } 122 }, 60000, TimeUnit.MILLISECONDS); 123 124 textLog += "onConnected(), requestLocationUpdates \n"; 125 textView.setText(textLog); 126 127 } catch (Exception e) { 128 e.printStackTrace(); 129 finish(); 130 } 131 } 132 } 133 134 135 @Override 136 public void onLocationChanged(Location location) { 137 lastLocationTime = location.getTime() - lastLocationTime; 138 139 textLog += "2---------- onLocationChanged \n"; 140 textLog += "2Latitude=" + String.valueOf(location.getLatitude()) + "\n"; 141 textLog += "2Longitude=" + String.valueOf(location.getLongitude()) + "\n"; 142 textLog += "2Accuracy=" + String.valueOf(location.getAccuracy()) + "\n"; 143 textLog += "2Altitude=" + String.valueOf(location.getAltitude()) + "\n"; 144 textLog += "2Time=" + String.valueOf(location.getTime()) + "\n"; 145 textLog += "2Speed=" + String.valueOf(location.getSpeed()) + "\n"; 146 textLog += "2Bearing=" + String.valueOf(location.getBearing()) + "\n"; 147 textLog += "2time= " + String.valueOf(lastLocationTime) + " msec \n"; 148 textView.setText(textLog); 149 } 150 151 @Override 152 public void onConnectionSuspended(int i) { 153 } 154 155 @Override 156 public void onConnectionFailed(ConnectionResult connectionResult) { 157 158 if (mResolvingError) { 159 160 return; 161 } else if (connectionResult.hasResolution()) { 162 163 } else { 164 mResolvingError = true; 165 } 166 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

エミュレータではPRIORITY_BALANCED_POWER_ACCURACYは使えないらしいですよ。

Stack Overflow

投稿2017/07/28 12:26

yona

総合スコア18155

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

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

atatatatata

2017/07/28 22:46

そうゆうことだったのですね。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問