2011-03-30 11 views
7

Duplicar posible:
Enable GPS programatically like TaskerCómo activar el GPS en Android de codificación

Ok, sé que no es la misma pregunta que antes, pero toda respuesta es "NO". Está comprobado que habilitar GPS se puede hacer en codificación. No creas? prueba una aplicación llamada "MIRAR". Creo que hay alguna solución para lograr esto.

había leído a través del puesto de observación AndroidManifest.xml, lo que descubrí que sólo utilice

<uses-permission android:name="android.permission.WRITE_SETTINGS"/> 

Alguien tiene idea de cómo se las arreglaron para hacer esto? ¿Cuál es el secreto detrás? Yo personalmente arregló para hacer esto sólo si la aplicación es instalar como aplicación del sistema y también se requiere el permiso de dos

<uses-permission android:name="android.permission.WRITE_SETTINGS"/> 
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/> 

Mi Código:

Settings.Secure.setLocationProviderEnabled(getContentResolver(), LocationManager.GPS_PROVIDER, true); 

gracias.

Respuesta

10

De acuerdo con this post en los foros de soporte de Lookout, no pueden habilitar el GPS mediante programación.

Si Lookout podría permitir que el receptor GPS de forma remota, a continuación, utilizar el servicio, y luego apagarlo - que lo haría, pero por desgracia no hay un “GPS desactivar por todo lo que no sea del puesto de observación” y si ha desactivado el receptor GPS , ninguna aplicación puede hacer uso de ella. La habilitación del receptor GPS requiere que el usuario lo haga manualmente.

Editar: Parece que en la nueva versión del puesto de observación lo más probable ahora explotando una falla de seguridad para lograr esto. No se garantiza que siga trabajando, pero according to an open Android bug report from April 2010, código similar a lo siguiente con éxito mediante programación activar/desactivar el GPS (al menos hasta que la falla es fijo):

private void toggleGPS(boolean enable) { 
    String provider = Settings.Secure.getString(getContentResolver(), 
     Settings.Secure.LOCATION_PROVIDERS_ALLOWED); 

    if(provider.contains("gps") == enable) { 
     return; // the GPS is already in the requested state 
    } 

    final Intent poke = new Intent(); 
    poke.setClassName("com.android.settings", 
     "com.android.settings.widget.SettingsAppWidgetProvider"); 
    poke.addCategory(Intent.CATEGORY_ALTERNATIVE); 
    poke.setData(Uri.parse("3")); 
    context.sendBroadcast(poke); 
} 

También, ver la pregunta "Enable GPS programmatically like Tasker" y la XDA thread mentioned there para más discusión sobre cómo las personas han usado este método.

Si utiliza este método, debe dejarlo en claro a los usuarios potenciales de su aplicación, ya que se trata de una GRANDE potencial de privacidad.

+0

Sí, eso es un lanzamiento anterior. Pero esto es posible en una nueva versión. Consulte su ayuda https://www.mylookout.com/help/ _¿Puede encender el GPS de forma remota? _ ** ¡Sí! ** Lookout hace uso del receptor GPS del teléfono Android de la manera más eficiente posible. Cuando se solicita una ubicación para un dispositivo Android, Lookout puede encender el GPS de forma remota mientras se ejecuta la localización y luego volver a desactivarlo (las ubicaciones pueden ejecutarse durante unos minutos para obtener los mejores resultados de ubicación). Esto ayuda a conservar la vida útil de la batería de su teléfono. Lookout solo usa el GPS para obtener su ubicación cuando usted lo solicita explícitamente. – Jason

+0

Yo personalmente había probado esto también. Funciona. – Jason

+0

Acabo de probarlo ahora en un dispositivo rooteado, y puedo confirmar que parece ser capaz de habilitar el GPS (y lo deja activado incluso después de que haya terminado). Me pregunto si todavía podrían hacerlo en un dispositivo no rooteado.¿Lo has probado en un stock de teléfono no rooteado? – Brian

Cuestiones relacionadas