Android 区分位置不可用和位置不受支持

Android 区分位置不可用和位置不受支持,android,gps,Android,Gps,在我的应用程序中,我将在操作栏上放置一个图标,当应用程序找不到用户的当前位置时警告用户。按下图标会弹出一个窗口,告诉他们我无法获取他们的位置,并给他们一个按钮,让他们进入设置。但是,如果他们的设备根本不支持位置,我希望自定义消息,而不是尝试将他们带到设置 有没有一种方法可以通过编程来区分位置关闭/不可用和没有位置功能的设备之间的区别?该类具有您正在寻找的功能。该方法将返回所有已知位置提供程序的列表,包括您的活动不允许访问或禁用的任何位置提供程序。您还可以调用以获取当前启用的位置提供程序的列表。如

在我的应用程序中,我将在操作栏上放置一个图标,当应用程序找不到用户的当前位置时警告用户。按下图标会弹出一个窗口,告诉他们我无法获取他们的位置,并给他们一个按钮,让他们进入设置。但是,如果他们的设备根本不支持位置,我希望自定义消息,而不是尝试将他们带到设置


有没有一种方法可以通过编程来区分位置关闭/不可用和没有位置功能的设备之间的区别?

该类具有您正在寻找的功能。该方法将返回所有已知位置提供程序的
列表
,包括您的活动不允许访问或禁用的任何位置提供程序。您还可以调用以获取当前启用的位置提供程序的
列表。

如果您正在使用新的Google Play Services位置API-
LocationServices.FusedLocationApi.getLocationAvailability()

如果您使用的是Location Manager API-

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) // Return a boolean
locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) // Return a boolean

你如何获得位置?查看文档中的方法/api/任何内容。对于这两种情况,可能都有特定的错误案例。Criteria=new Criteria();条件.setCostAllowed(true);标准。设置功率要求(标准。功率低);字符串提供程序=locationManager.getBestProvider(条件为true);locationManager.getLastKnownLocation();对于完全不支持位置的设备,列表是否为空?应该为空。我没有不支持定位的设备,所以很遗憾我无法测试。