0

我正在构建一个需要 GPS 或网络操作的定位应用程序。我希望能够将用户引导到 GPS 或无线设置,以强制他们在没有打开它的情况下打开它。我的问题是,我如何检查他们是否真的在设置页面后打开了提供程序?

以下是引导用户进行设置的常用代码。之后我会怎么做?

LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
    boolean enabled = service
            .isProviderEnabled(LocationManager.GPS_PROVIDER);
    if (!enabled) {
        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        startActivity(intent);
    } 
4

2 回答 2

4

之后我会怎么做?

没有。

您大概(希望?)检查您是否可以在onResume()您的活动中使用 GPS。当控制从 Settings 活动返回到您的活动时,将再次调用该逻辑。因此,您将再次经历相同的逻辑。

于 2013-03-05T21:43:43.983 回答
0

使用 startActivityForResult 而不是 startActivity。然后在 onActivityResult 中再次检查 isProviderEnabled。这应该可以工作,除非 idProviderEnabled 在你有 GPS 同步之前不会返回 true,我认为情况并非如此。同样的事情应该适用于wifi。

于 2013-03-05T21:43:24.440 回答