【问题标题】:Android GPS on or off stateAndroid GPS 开启或关闭状态
【发布时间】:2023-03-18 01:52:02
【问题描述】:

有什么方法可以检查Android GPS是否在未经任何许可的情况下打开或关闭,只是我不需要切换它的状态。

谢谢

【问题讨论】:

    标签: android gps toggle state android-manifest


    【解决方案1】:

    没有。在 Android 上检查 GPS 状态需要

    android.permission.ACCESS_FINE_LOCATION

    检查GPS状态的代码

    
     LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE );
     boolean statusOfGPS = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    
    

    【讨论】:

    • 同上。 AFAI 可以看到所有可以告诉您启用/禁用或任何有关 gps 状态的方法都需要适当的权限。似乎您应该能够在不需要许可的情况下检查启用/禁用状态。
    • 这会检查 GPS 是否启用。不管它是否真的开启。这可能是 OP 所要求的,但有一个重要的区别。如果已启用,则您可以询问 GPS 位置而不是网络位置,但您必须记住将 GPS 关闭。
    【解决方案2】:

    步骤 -

    1. 创建在后台运行的服务
    2. 您也需要在 Manifest 文件中获得以下权限 -

      android.permission.ACCESS_FINE_LOCATION
      
    3. 写代码

       final LocationManager manager = (LocationManager)context.getSystemService    (Context.LOCATION_SERVICE );
      
      if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) )
      
      //what you want to do
       else
      
         //what you want to do
      
    4. 或者你可以检查一下

      LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE );
      boolean statusOfGPS = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
      
    5. 持续运行服务以监控连接

    6. 从 Activity 调用您的服务

    【讨论】:

      【解决方案3】:

      如果您想检查 GPS 的状态是打开还是关闭,那么此解决方案将帮助您

      final LocationManager manager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE );
      
      if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) )
        Toast.makeText(context, "GPS is disable!", Toast.LENGTH_LONG).show(); 
      else
       Toast.makeText(context, "GPS is Enable!", Toast.LENGTH_LONG).show();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多