Wie programm ermöglichen GPS in Android Cupcake
-
20-08-2019 - |
Frage
Ich bin derzeit eine App in Android zu schreiben, die mit dem GPS funktioniert. Im Moment bin ich in der Lage, herauszufinden, ob das GPS aktiviert ist. Mein Problem ist, dass ich die GPS auf app Start aktiviert werden soll, wenn es deaktiviert ist. Wie kann ich tun, um diese programmaticaly?
Lösung
Sie können nicht, beginnend mit Android 1.5. Die Sie tun können, ist Pop die Aktivität öffnen, damit der Benutzer es ein- / auszuschalten. Verwenden Sie die gehaltene Aktion in android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS
eine Intent Handwerk, diese Aktivität zu öffnen.
Andere Tipps
if(!LocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER ))
{
Intent myIntent = new Intent( Settings.ACTION_SECURITY_SETTINGS );
startActivity(myIntent);
}
Dieser Code Methode kann Hilfe für Sie sein
private void turnGPSOnOff(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(!provider.contains("gps")){
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);
//Toast.makeText(this, "Your GPS is Enabled",Toast.LENGTH_SHORT).show();
}
}
Sie können verwenden Sie die folgende:
try {
Settings.Secure.setLocationProviderEnabled(getContentResolver(), LocationManager.GPS_PROVIDER, true);
} catch (Exception e) {
logger.log(Log.ERROR, e, e.getMessage());
}
, aber es wird nur funktionieren, wenn Sie Systemsignaturschutzniveau haben. So müssen Sie Ihr eigenes Bild, um kochen, es tatsächlich zu verwenden: /
Überprüfen Sie zunächst, ob der Standort-Service ist bereits auf oder nicht ??
Standortbestimmungsdienst-Überprüfung aktiviert ist oder nicht
public boolean isLocationServiceEnabled(){
LocationManager locationManager = null;
boolean gps_enabled= false,network_enabled = false;
if(locationManager ==null)
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
try{
gps_enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}catch(Exception ex){
//do nothing...
}
try{
network_enabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
}catch(Exception ex){
//do nothing...
}
return gps_enabled || network_enabled;
}
Dann endlich zu öffnen, wenn Standortdienst in vorher ausgeschaltet
if (isLocationServiceEnabled())) {
//DO what you need...
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Seems Like location service is off, Enable this to show map")
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
}
}).setNegativeButton("NO THANKS", null).create().show();
}
sollten Sie verwenden die Standorteinstellungen Dialog in Play-Diensten, die den Benutzer auffordert, die Ortungsdienste (falls erforderlich) mit nur einem Klick zu aktivieren.
Wenn Sie Ihre Frage auf der Benutzerebene von android diese Eigenschaften befinden sich in:. "Settings -> Location -> Use wireless networks" -> "Settings -> Location -> Use GPS satellites"
Aber im Entwickler kann die Klasse "android.provider.Settings.Secure"
mit den entsprechenden Berechtigungen verwenden.