Autore Topic: GPS on/off  (Letto 4339 volte)

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
GPS on/off
« il: 31 Marzo 2010, 10:32:19 CEST »
0
ciao a tutti,
sto cercando il miglior modo per disattivare e riattivare il GPS,
chi mi da una mano?
 ;)
:)          :P    --->|^.^|<---     ;)         :D 

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:GPS on/off
« Risposta #1 il: 01 Aprile 2010, 19:50:03 CEST »
0
domanda difficile vero? io ho cercato in lungo e in largo ma sembra essere una questione complessa..  :'(
:)          :P    --->|^.^|<---     ;)         :D 

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:GPS on/off
« Risposta #2 il: 01 Aprile 2010, 20:46:01 CEST »
0
Hai provato a controllare i sorgenti del widget "controllo risparmio energia"? É disponibile da android 1.6 in poi e ha, tra gli altri, lo switch per il gps. Il widget é integrato nell'app Impostazioni.
Ora provo pure io a ripescare il sorgente

Edit: ecco il toggleGps che il widget usa:
Codice (Java): [Seleziona]
private void toggleGps(Context context) {
        ContentResolver resolver = context.getContentResolver();
        boolean enabled = getGpsState(context);
        Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER,
                !enabled);
    }

Il metoto getGpsState é anch'esso definito all'interno del codice del widget, e in sostanza restituisce lo stato del GPS (ma dai!!)
« Ultima modifica: 01 Aprile 2010, 20:52:50 CEST da blackgin »
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:GPS on/off
« Risposta #3 il: 01 Aprile 2010, 20:58:18 CEST »
0
uhauhauaha non ci avevo minimamente pensato di controllare i sorgenti del widget...  :P
grazie ora ci provo!! heheheh!  :-*
:)          :P    --->|^.^|<---     ;)         :D 

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:GPS on/off
« Risposta #4 il: 01 Aprile 2010, 21:07:23 CEST »
0
Quei sorgenti sono una risorsa immensa
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:GPS on/off
« Risposta #5 il: 01 Aprile 2010, 21:36:05 CEST »
0
isLocationProviderEnabled e setLocationProviderEnabled
Settings.Secure non ha questi metodi..  o_O
:)          :P    --->|^.^|<---     ;)         :D 

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:GPS on/off
« Risposta #6 il: 01 Aprile 2010, 21:52:51 CEST »
0
in generale degli import che propone il widget

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.bluetooth.BluetoothDevice;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.IContentService;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.IHardwareService;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.Settings;
import android.util.Log;
import android.widget.RemoteViews;
import com.android.settings.R;
import com.android.settings.bluetooth.LocalBluetoothManager;


Questi in rosso  non sono disponibili nell'sdk..
:)          :P    --->|^.^|<---     ;)         :D 

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:GPS on/off
« Risposta #7 il: 02 Aprile 2010, 09:53:56 CEST »
0
Ahi...

Citazione
Technique to Avoid, #2: Directly Manipulating Settings
Okay, strictly speaking this one isn't evil, since this is a change in behavior that we made to Android itself. But we made it because some developers were doing naughty things: a number of apps were changing system settings silently without even notifying the user. For instance, some apps turn on GPS without asking the user, and others might turn on data roaming.
As a result, applications can no longer directly manipulate the values of certain system Settings, even if they previously had permission to do so. For instance, apps can no longer directly turn on or off GPS. These apps won't crash, but the APIs in question now have no effect, and do nothing. Instead, apps will need to issue an Intent to launch the appropriate Settings configuration screen, so that the user can change these settings manually. For details, see the android.provider.Settings.Secure class, which you can find in the 1.5_pre SDK documentation (and later). Note that only Settings that were moved to the Settings.Secure class are affected. Other, less sensitive, settings will continue to have the same behavior as in Android 1.1.

da http://android-developers.blogspot.com/2009/04/future-proofing-your-apps.html

a dirla tutta il widget accendi/spegni gps esiste e funziona anche bene...
idee?
:)          :P    --->|^.^|<---     ;)         :D 

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:GPS on/off
« Risposta #8 il: 02 Aprile 2010, 11:20:02 CEST »
0
Comunque non hanno tutti i torti.. Io ti consiglio di studiarti il modo corretto di attivare/disattivare il GPS e vedere di implementarlo
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:GPS on/off
« Risposta #9 il: 02 Aprile 2010, 11:30:48 CEST »
0
sicuramente trovo giusto il rimandare ad un pannello affinché l'utente possa scegliere se farlo oppure no.

Tuttvia siccome lo vorrei implementare nel killmelater un utente dovrebbe impostando un timer decidere quando disattivarlo..

La mia considerazione è che impostando i timer alla sera dopo una certa ora potrebbe disattivarsi automaticamente una serie di servizzi consumabatteria per poi riattivarsi al mattino ad un ora prestabilita..
non ci trovo nulla di male anzi se l'utente è a conoscenza di quello che succede [con relativi permessi] lo trovo una utilità non da poco

sono riuscito ad avere l'accesso al wifi e a disattivarlo su richiesta, funziona bene e non richiede salti mortali il gps deve dare sti problemi? non è la stessa cosa? certo si parla di localizzazione..anche quello è vero..la privacy ecc... ma dico... su.. hehehe
:)          :P    --->|^.^|<---     ;)         :D 

Offline Dado

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone
  • Play Store ID:
    Edges Labs
Re:GPS on/off
« Risposta #10 il: 03 Aprile 2010, 14:28:42 CEST »
0
Anche io ero interessato ad un metodo per disabilitare direttamente il GPS, da qualche parte avevo letto che bisognava avere il cell rootato (però non ho mai provato), alla fine cmq usando le normali api/librerie di android e senza cell rootato non mi sembra sia possibile o sbaglio?

Offline Rolli

  • Utente junior
  • **
  • Post: 82
  • Respect: 0
    • Mostra profilo
    • voodoomedia.it
  • Dispositivo Android:
    Acer Liquid
  • Play Store ID:
    voodoomedia
  • Sistema operativo:
    Windows
Re:GPS on/off
« Risposta #11 il: 03 Aprile 2010, 15:30:05 CEST »
0
ho appena installato "GPS onoff" un widget free
non fa altro che aprire la schermata di preferenze dove te lo devi accendere o spegnere a mano... :'(
:)          :P    --->|^.^|<---     ;)         :D 

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:GPS on/off
« Risposta #12 il: 09 Settembre 2011, 01:36:08 CEST »
0
già provato questo codice?

Codice (Java): [Seleziona]
private void turnGPSOn(){
    String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

    if(!provider.contains("gps")){ //if gps is disabled
        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"));
        sendBroadcast(poke);
    }
}

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

    if(provider.contains("gps")){ //if gps is enabled
        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"));
        sendBroadcast(poke);
    }
}

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:GPS on/off
« Risposta #13 il: 09 Settembre 2011, 11:18:08 CEST »
0
ma per l'on e l'off sono uguali i pezzi di codice...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:GPS on/off
« Risposta #14 il: 09 Settembre 2011, 14:24:01 CEST »
0
proprio identici non sono eh ;)
c'è un not nella prima funzione