Androidの位置付けに関するいくつかの問題

2205 ワード

最近、赤米の携帯電話でデスクトップの小さなウィンドウを開発しているのは、位置を取得できずに現在の経緯を取得していることに出会って、問題を探して、位置キャッシュがないことを報告しています.理由は、携帯電話に以前の位置を取得したデータがないからです.まずコードを見てみましょう.
/**
 * GPS      
 */
public static Location getGPSLocation(@NonNull Context context) {
    Location location = null;
    LocationManager manager = getLocationManager(context);
    //        
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        return null;
    }
    if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {//    GPS  
        //     GPS    ,        ,          ,        ,                
        location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    }
    return location;
}

ここでポイントはmanagerですgetLastKnownLocation(LocationManager.GPS_PROVIDER);前回位置決めしたデータを取得するために;その問題が来て、私は直接傍受を要求する方法で位置決めをしましたが、まだ取得できません.当時、携帯電話の権限の問題や、システムが持っている天気測位機能をチェックしても、手に入らなかったので、ここまでは携帯電話の問題だと思っていました.しかし、その後、高徳地図の位置決め権限を申請し、位置決め方法を書き換えると、位置決めデータを取得することができます!
この解決方法を記録します.