Ich versuche, eine App zu schreiben, die den aktuellen Standort erhält und den Breiten- und Längengrad in Echtzeit anzeigt. Wenn ich diese App starte, scheint der GPS nicht nach einem Ort zu suchen und versucht, eine Reparatur zu bekommen. Ich weiß nicht, warum das passiert. Habe ich etwas verpasst? Wenn ich die Karten-App öffne, wird der Ort sofort repariert. Aber in meiner App sucht das GPS nicht nach einem oder zumindest in der Benachrichtigungsleiste, es zeigt nichts wie "Suche nach GPS", was normalerweise in der Karten-App angezeigt wird.Fused Location funktioniert nicht Android
Meine Haupttätigkeit:
package com.example.android.location1;
import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Location;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, LocationListener{
private final String LOG_TAG = "TestApp";
private TextView txtOutput;
private GoogleApiClient mGoogleApiClient;
private LocationRequest mLocationRequest;
private static final int REQUEST_PERMISSION = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(this).addApi(LocationServices.API).addConnectionCallbacks(this).build();
txtOutput = (TextView) findViewById(R.id.txtOutput);
}
@Override
protected void onStart(){
super.onStart();
mGoogleApiClient.connect();
}
@Override
protected void onStop(){
mGoogleApiClient.disconnect();
super.onStop();
}
@Override
public void onConnected(Bundle bundle){
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(1000).setMaxWaitTime(2000);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_PERMISSION);
}
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
}
@Override
public void onConnectionSuspended(int i){
Log.i(LOG_TAG, "GoogleApiClient connection has been suspended.");
}
@Override
public void onLocationChanged(Location location){
Log.i(LOG_TAG, location.toString());
txtOutput.setText(String.valueOf(location.getLatitude()) + ", " + String.valueOf(location.getLongitude()));
}
}
Meine Manifest-Datei:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.location1">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-feature android:name="android.hardware.location.gps"/>
<uses-feature android:name="android.hardware.location.network"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ich das auf Android 6 und 7 getestet habe in einem von ihnen nicht. Jede Hilfe wäre willkommen.
Nein Ihre Lösung hat das Problem nicht gelöst. Das Problem besteht immer noch. – speedster01
folgendermaßen vor https://developers.google.com/android/guides/setup Überprüfen Sie, ob Ihre mGoogleApiClient und im Monitor-Log und dass die onConnected() -Methode in Ihrer Callback-GoogleApiClient.ConnectionCallbacks ausgeführt wird verbunden authentifiziert wird – typecode
Ich habe den von Ihnen bereitgestellten Link nur verwendet, um die Funktionen zunächst einzurichten. Ich überprüfte; Der Google Client wird verbunden und die Methode onConnected() wird ebenfalls ausgeführt. Die locationChanged() -Methode wird ebenfalls aufgerufen. Nur dass es immer wieder derselbe Ort ist. Der Standort scheint sich nicht zu ändern, außer dass das GPS-Symbol nicht im Benachrichtigungsmenü angezeigt wird. – speedster01