如何在应用程序中检查GPS支持,为已启用位置服务的用户添加功能?

Bri*_*acy 0 android geolocation android-manifest

如何在应用程序中检查GPS支持,为已启用位置服务的用户添加功能?

我担心的是,我知道我必须在清单中指定标签来声明应用程序使用位置服务,但我仍然希望应用程序能够为那些没有的应用程序运行.我只想检查,如果服务可用,请使用它; 否则只是忽略那个功能.

谢谢.

Dan*_*Lew 6

您可以通过查看是否启用了任何位置提供程序来检查是否启用了任何位置服务.我现在在我的代码中使用此函数:

public static boolean areProvidersEnabled(Context context) {
    ContentResolver cr = context.getContentResolver();
    String providersAllowed = Settings.Secure.getString(cr, Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    return providersAllowed != null && providersAllowed.length() > 0;
}
Run Code Online (Sandbox Code Playgroud)

另一个巧妙的事情是,您可以直接将用户发送到位置设置,并询问他们是否要启用它.我会告诉你如何询问用户,但是获取设置的意图是这样的:

Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)