【问题标题】:How to check programmatically if the option "Use GPS Satellite" in the setting is ticked如果勾选设置中的“使用 GPS 卫星”选项,如何以编程方式检查
【发布时间】:2014-07-06 07:27:14
【问题描述】:

如果设备的设置菜单中的“使用GPS卫星”选项被勾选,如何以编程方式检查?

有什么想法或建议吗?

【问题讨论】:

  • 我不明白你说的“使用gps卫星”是什么意思,用户可以打开/关闭gps,这是什么设置?
  • 我假设您将通过调用startactivity 访问设置活动。但是,既然您想检查用户是否勾选了某个选项,那么您应该使用startactivityforresult,因为您期望从该活动“设置活动”返回一个值。你的情况差不多吗?

标签: android sharedpreferences start-activity onactivityresult


【解决方案1】:

通过使用广播接收器,您可以实现这一点。

public class GPSStatusBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        Toast.makeText(arg0, "Broadcast received!", Toast.LENGTH_SHORT).show();

    }
}

将此添加到 android 清单中的标签内:

<receiver android:name=".GPSStatusBroadcastReceiver"> 
    <intent-filter> 
        <action android:name="android.location.PROVIDERS_CHANGED" /> 
    </intent-filter> 
</receiver>

【讨论】:

    【解决方案2】:

    您可以使用此代码检查 GPS 检查。

    LocationManager myLocationManager;
    LocationListener myLocationListener; 
    
        myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        myLocationListener = new MyLocationListener();
    
    
        myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, myLocationListener);
                if(!myLocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER ))
                {
                    displayalert(); 
                }
    

    【讨论】:

    • 其实并非如此。因为根据用户选择“他是否勾选了 gps-enable”,我应该执行一些操作或初始化某些视图
    • 我假设您将通过调用startactivity 访问设置活动。但是,既然您想检查用户是否勾选了某个选项,那么您应该使用startactivityforresult,因为您期望从该活动“设置活动”返回一个值。你的情况差不多吗?
    猜你喜欢
    • 2014-08-20
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2021-11-30
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多