Android Settings.ACTION_LOCATION_SOURCE_SETTINGS 导致崩溃

Android Settings.ACTION_LOCATION_SOURCE_SETTINGS resulting in crash

我正在使用以下代码行将用户重定向到位置设置屏幕

startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0); 

它在大多数设备上运行良好,但在某些三星设备上崩溃,但有一个例外:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.LOCATION_SOURCE_SETTINGS }

是否有更好的方法来处理位置设置?

Is there a better way to handle location settings ?

几乎所有 Settings class 上的操作字符串都在 JavaDocs 中提到 activity 可能不存在,因此您应该适当地处理它(例如,包装您的 startActivity() 调用 ActivityNotFoundException 处理程序)。

在这种情况下,除了 ACTION_SETTINGS 之外没有明显的后备选项。您可能会显示来自异常处理程序的 Snackbar 或对话框,指示此设备没有直接第三方访问位置设置屏幕的权限。

另请注意,startActivityForResult() 在您的情况下没有用;只需使用 startActivity().