初心者の問題で、私はLocationListenerを実装したサービスをAndroid搭載アプリに持っています。私は、OnCreateのイベントをフックして、物事が変わったときに私の現在の位置でトースターを表示しようとしています。何らかの理由で、アプリが自分のGPSを見ていないため、GPSにアクセスできず、requestLocationUpdates関数を呼び出すと例外がスローされるという不満があります。何かアドバイスはAndroid GPSにアクセスできない
があなたの特定の質問が何であるか全くわからない
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
@Override
public void onCreate() {
super.onCreate();
ctx = this;
if (Build.VERSION.SDK_INT >= 23 &&
ContextCompat.checkSelfPermission(ctx, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(ctx, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000,1, this);
} else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000,1, this);
}
}
// Toast.makeText(this, "MyService Created", Toast.LENGTH_LONG).show();
}
@Override
public void onLocationChanged(Location location) {
double latitude = 0;
double longitude = 0;
latitude = location.getLatitude();
longitude =location.getLongitude();
if (latitude != 0 && longitude != 0){
Toast.makeText(this, "LAT and LON updated", Toast.LENGTH_LONG).show();
}
}
logcatを投稿してください。 –
onLocationChangedコールバックが呼び出されていることを確認しましたか、またはあなたのアクティビティにgpsインターフェイスを実装していますか? – uelordi
Googleドキュメントから:「Android 5.0(APIレベル21)以上のアプリを対象とする場合は、アプリケーションでマニフェストファイルのandroid.hardware.location.networkまたはandroid.hardware.location.gpsハードウェア機能を使用することを宣言する必要がありますあなたのアプリがNETWORK_PROVIDERまたはGPS_PROVIDERからの位置情報を受け取るかどうかによって異なります。「https://developer.android.com/guide/topics/location/strategies.html#Permission」について詳しくは、こちらをご覧ください。 – momo