我正在构建一个需要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);
}
答案 0 :(得分:4)
之后我会做什么?
没有
您可能(希望?)检查您是否可以在活动的onResume()
中使用GPS。当控件从“设置”活动返回到您的活动时,将再次调用该逻辑。因此,你将再次经历相同的逻辑。
答案 1 :(得分:0)
使用startActivityForResult而不是startActivity。然后在onActivityResult中再次检查isProviderEnabled。这应该有效,除非idProviderEnabled在你有GPS同步之前不会返回true,我不认为是这种情况。同样的事情应该适用于wifi。