このコードでは、このコードは、初めてエミュレータを実行するときにこのコードだけが動作する場所を取得しようとしています。再度動作させるためにエミュレータを閉じるためにIhaveを実行します。エラー場所がアンドロイドで動作しない
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_insert);
myContext = this;
position =(TextView)findViewById(R.id.position);
locationManager=(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(android.location.Location location) {
double latitude=location.getLatitude();
double longitude=location.getLongitude();
position.setText("lat:"+latitude+" lon:"+longitude);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
101);
}
else{
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location != null){
}
else{
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0, locationListener);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
try {
switch (requestCode) {
case 101: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
} else {
}
return;
}
}
}
catch(SecurityException err_permission) {
}
}
}
とのmanifest.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
でこのpermisionしかし、位置がTextViewの上に表示されていない、私は、私が何かを逃していないと思いますI?たぶんcoarse_location許可?Iこのコードで何が間違っているのかわからないのですが、それはlocationmanagerとlistenersを持っています。そしてaksフォーム許可...
と更新し続けるには、あなたのデバッグをしましたここで何が呼び出され、何が呼び出されないのかを確認するコードですか? onLocationChangedで実際の場所を取得するか、それとも決して呼び出されないのですか?後ろに戻り、最後のポイントがコードがまだ動作する場所を確認してください – breakline