Su un dispositivo Android Cupcake (1.5) abilitato, come posso controllare e attivare il GPS?Come scoprire se il GPS di un dispositivo Android è abilitato
risposta
Il modo migliore sembra essere la seguente:
final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
buildAlertMessageNoGps();
}
private void buildAlertMessageNoGps() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Your GPS seems to be disabled, do you want to enable it?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
dialog.cancel();
}
});
final AlertDialog alert = builder.create();
alert.show();
}
Principalmente si tratta di accendere l'intenzione di vedere la configurazione GPS, vedere http://github.com/marcust/HHPT/blob/master/src/org/thiesen/hhpt/ui/activity/main/MainActivity .java per i dettagli. – Marcus
Nice snippet of code. Ho rimosso @SuppressWarnings e non ricevo alcun avviso ... forse non sono necessari? – span
Consiglierei di dichiarare 'alert' per l'intera attività in modo da poterlo eliminare in onDestroy per evitare una perdita di memoria (' if (alert! = Null) {alert.dismiss();} ') – Cameron
GPS verrà utilizzato se l'utente ha permesso di essere utilizzato nelle sue impostazioni.
Non è possibile attivare questa opzione in modo esplicito, ma non è necessario: è un'impostazione di privacy davvero, quindi non si desidera modificarla. Se l'utente è a posto con le app che ottengono coordinate precise, sarà acceso. Quindi l'API del gestore località utilizzerà il GPS, se possibile.
Se l'app in realtà non è utile senza GPS ed è disattivata, è possibile aprire l'app delle impostazioni sullo schermo di destra utilizzando un intento in modo che l'utente possa abilitarlo.
sì Le impostazioni GPS non possono essere modificate più programmaticamente in quanto sono impostazioni della privacy e dobbiamo verificare se sono accese o meno dal programma e gestirlo se non sono accese. puoi avvisare l'utente che il GPS è spento e usare qualcosa di simile per mostrare la schermata delle impostazioni all'utente se lo desideri.
Verificare se i fornitori di localizzazione sono disponibili
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(provider != null){
Log.v(TAG, " Location providers: "+provider);
//Start searching for location and update the location text when update available
startFetchingLocation();
}else{
// Notify users and show settings if they want to enable GPS
}
Se l'utente vuole attivare il GPS si può mostrare la schermata delle impostazioni in questo modo.
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, REQUEST_CODE);
E nel tuo onActivityResult si può vedere se l'utente ha attivato o no
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode == REQUEST_CODE && resultCode == 0){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(provider != null){
Log.v(TAG, " Location providers: "+provider);
//Start searching for location and update the location text when update available.
// Do whatever you want
startFetchingLocation();
}else{
//Users did not switch on the GPS
}
}
}
Questo è un modo per farlo e spero che aiuta. Fammi sapere se sto facendo qualcosa di sbagliato.
ciao, ho un problema simile ... puoi spiegare brevemente, cos'è il "REQUEST_CODE" e a cosa serve? – poeschlorn
@poeschlorn Anna ha pubblicato il link per la descrizione di seguito. In termini semplici, RequestCode consente di utilizzare 'startActivityForResult' con più intenti. Quando gli intenti ritornano alla tua attività, controlli il RequestCode per vedere quale intento sta tornando e rispondi di conseguenza. – Farray
Il 'provider' può essere una stringa vuota. Ho dovuto cambiare il controllo a '(provider! = Null &&! Provider.isEmpty())' – Pawan
In Android, possiamo facilmente verificare se il GPS è abilitato nel dispositivo o non utilizzare LocationManager.
Ecco un semplice programma da verificare.
GPS abilitato o meno: - aggiungere la riga permesso dell'utente di seguito nella AndroidManifest.xml per accedere alla posizione
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
vostro file di classe Java dovrebbe essere
public class ExampleApp extends Activity {
/** Called when the activity is first created. */
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
Toast.makeText(this, "GPS is Enabled in your devide", Toast.LENGTH_SHORT).show();
}else{
showGPSDisabledAlertToUser();
}
}
private void showGPSDisabledAlertToUser(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("GPS is disabled in your device. Would you like to enable it?")
.setCancelable(false)
.setPositiveButton("Goto Settings Page To Enable GPS",
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
Intent callGPSSettingIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(callGPSSettingIntent);
}
});
alertDialogBuilder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
dialog.cancel();
}
});
AlertDialog alert = alertDialogBuilder.create();
alert.show();
}
}
La volontà di uscita sembra
Ecco i passaggi:
Fase 1: creare servizi in esecuzione in background.
Fase 2: si richiede autorizzazione seguente nel file manifesto troppo:
android.permission.ACCESS_FINE_LOCATION
Fase 3: Codice scrittura:
final LocationManager manager = (LocationManager)context.getSystemService (Context.LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER))
Toast.makeText(context, "GPS is disabled!", Toast.LENGTH_LONG).show();
else
Toast.makeText(context, "GPS is enabled!", Toast.LENGTH_LONG).show();
Fase 4: O semplicemente è possibile controllare utilizzando:
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean statusOfGPS = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
Passaggio 5: Eseguire i servizi continuamente per monitorare la connessione.
Questo è il primo modo per controllare lo stato del GPS per me. Molte grazie! – Patryk
il passo 4, mi dà 'true' ogni volta, anche il * GPS * non è abilitato .... –
Indica che il GPS è abilitato anche quando è spento. –
Sì, è possibile controllare qui sotto è il codice:
public boolean isGPSEnabled (Context mContext){
LocationManager locationManager = (LocationManager)
mContext.getSystemService(Context.LOCATION_SERVICE);
return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
Come posso abilitarlo se è disabilitato –
Nella tua LocationListener
, implementare e onProviderEnabled
onProviderDisabled
gestori di eventi. Quando chiami requestLocationUpdates(...)
, se il GPS è disabilitato sul telefono, verrà chiamato il numero onProviderDisabled
; se l'utente abilita il GPS, verrà chiamato onProviderEnabled
.
Questo pezzo di codice controlla lo stato del GPS
final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
buildAlertMessageNoGps();
}
`
- 1. python come scoprire se l'hyperthreading è abilitato
- 2. Come verificare se il bluetooth è abilitato su un dispositivo
- 3. Come sapere se il GPS è abilitato su Android usando Titanium
- 4. Come posso sapere se un dispositivo iOS ha un GPS?
- 5. Verifica se il facetime è abilitato sul dispositivo
- 6. Come aprire le impostazioni GPS di un dispositivo Android?
- 7. Scoprire se l'attività Android è in esecuzione
- 8. Come verificare se NFC è abilitato o meno in Android?
- 9. Come scoprire se un punto GPS si trova in un determinato set di posizione GPS iniziale e finale?
- 10. Trova localmente il supporto GPS del dispositivo o no?
- 11. Come scoprire se un particolare dispositivo ha SIM Supporto hardware?
- 12. come scoprire lo stato della schermata su un dispositivo Android?
- 13. controllo Android disponibilità GPS sulla dispositivo
- 14. Come rilevare se un dispositivo Windows è abilitato per il tocco
- 15. Controlla automaticamente se il GPS è abilitato o meno su iPhone
- 16. Come rilevare se la porta HDMI su un dispositivo Android ha abilitato HDCP?
- 17. Come determinare se un motore TTS specifico è selezionato (abilitato)?
- 18. GPS non è abilitato ma isProviderEnabled() restituisce true
- 19. Android - Come sapere se il dispositivo è solo WiFi?
- 20. Come scoprire se un indirizzo di Ethereum è un contratto?
- 21. Determina se il modulo Magento è abilitato
- 22. È possibile utilizzare un dispositivo Android/iPhone abilitato BLE come beacon BLE?
- 23. Scoprire se il tipo è istantaneo
- 24. Emulazione GPS o dispositivo seriale
- 25. Quanto è accurato il GPS Android?
- 26. Come verificare se PHP mail() è abilitato?
- 27. Come verificare se il bluetooth è abilitato a livello di programmazione?
- 28. Verifica se javascript è abilitato
- 29. scoprire se un oggetto C++ è richiamabile
- 30. WiFi getScanResults restituisce una lista vuota se il GPS è spento. (Android 6.0.1)
che dire di accettare la risposta? :) – dit