安卓GPS开启或关闭状态

12

有没有任何方法可以在不需要任何权限的情况下检查Android GPS是否开启或关闭,只是状态而不需要切换它。

谢谢

3个回答

38

不需要。在Android上检查GPS状态不需要

android.permission.ACCESS_FINE_LOCATION

检查GPS状态的代码


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


1
据我所见,所有可以告诉您有关 GPS 启用/禁用状态或任何状态的方法都需要适当的权限。看起来您应该能够在不需要权限的情况下检查启用/禁用状态。 - Hamy
4
这句话的意思是检查GPS是否已启用,而不是它是否实际上打开了。这可能是原帖所要求的内容,但有一个重要的区别。如果启用了GPS,则可以请求GPS位置而不是网络位置,但您必须记得关闭GPS。 - ShatyUT

6

步骤 -

  1. Create services running in backgroud
  2. You require following permission in Manifest file too -

    android.permission.ACCESS_FINE_LOCATION
    
  3. write code

     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. Or simply you can check

    LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE );
    boolean statusOfGPS = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    
  5. run your services continuous to monitor connection

  6. call your services from Activity

4
如果您想检查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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接