Android GPS 无法获取我的位置

Posted

技术标签:

【中文标题】Android GPS 无法获取我的位置【英文标题】:Android GPS unable to get my location 【发布时间】:2016-09-24 23:20:25 【问题描述】:

我有一个在 2 周前可以正常运行的应用。今天我运行代码并遇到了一些问题。它似乎无法检测到我的 gps(位置选项)正在启动。位置关闭时,我会在启动时弹出一条消息并要求打开位置选项,打开后它会显示我当前的位置。但是,如果我退出应用程序并重新打开它,即使位置选项仍然打开,它也不会显示我的当前位置。

再次,它曾经工作,我总是能够在启动时获得我当前的位置,但我不知道为什么它不再工作,因为我没有改变任何东西。

Location location = locationManager.getLastKnownLocation(provider) 总是返回 null。

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


    // Getting GoogleMap object from the fragment
    googleMap = fm.getMap();

    // Enabling MyLocation Layer of Google Map
    googleMap.setMyLocationEnabled(true);

    googleMap.setPadding(0, 0, 0, 90);
    //loadSettings();
    // Getting LocationManager object from System Service LOCATION_SERVICE
    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
        //Toast.makeText(this, "GPS is Enabled in your devide", Toast.LENGTH_SHORT).show();
    else
        showGPSDisabledAlertToUser();
    

    googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() 
        @Override
        public void onMapClick(LatLng point) 
            changeLocation(point);
        
    );
    // Creating a criteria object to retrieve provider
    Criteria criteria = new Criteria();

    // Getting the name of the best provider
    provider = locationManager.getBestProvider(criteria, true);

    // Getting Current Location
    Location location = locationManager.getLastKnownLocation(provider);

    if(location!=null)
            onLocationChanged(location);
    

    locationManager.requestLocationUpdates(provider, 20000, 0, this);



private void showGPSDisabledAlertToUser()
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setMessage("GPS is disabled in your device. Would you like to enable it?")
            .setCancelable(false)
            .setPositiveButton("Goto Settings Page To Enable GPS",
                    new DialogInterface.OnClickListener()
                        public void onClick(DialogInterface dialog, int id)
                            Intent callGPSSettingIntent = new Intent(
                                    android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                            startActivity(callGPSSettingIntent);
                        
                    );
    alertDialogBuilder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener()
                public void onClick(DialogInterface dialog, int id)
                    dialog.cancel();
                
            );
    AlertDialog alert = alertDialogBuilder.create();
    alert.show();

【问题讨论】:

【参考方案1】:

google-services 存储库中有一个更新,也许你可以检查一下

【讨论】:

以上是关于Android GPS 无法获取我的位置的主要内容,如果未能解决你的问题,请参考以下文章

即使启用了 GPS,也无法获取位置

手机重启后Android无法获取位置

无法使用通用代码获取 GPS 位置

在 android 中获取更新位置和禁用 GPS 后如何获取?

在Python中获取精确的Android GPS位置

Android 从 GPS 获取位置