Вы можете использовать что-то вроде этого:
let a = document.createElement('a');
let anchorText = document.createTextNode("Organization name");
a.appendChild(anchorText);
a.title = "Open organization webpage";
a.href = "http://example.com";
document.body.appendChild(a);
GPS будет использоваться, если пользователь разрешил его использование в своих настройках.
Вы больше не можете явно включить это, но и не обязаны - на самом деле это настройка конфиденциальности, поэтому вы не хотите ее настраивать. Если пользователь согласен с тем, что приложения получают точные координаты, он будет включен. Тогда API диспетчера местоположения будет использовать GPS, если это возможно.
Если ваше приложение действительно бесполезно без GPS и оно отключено, вы можете открыть приложение настроек на правом экране, используя намерение, чтобы пользователь мог его включить.
Лучший способ выглядит следующим образом:
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();
}
да Настройки GPS больше не могут быть изменены программно, так как они являются настройками конфиденциальности, и мы должны проверить, включены ли они в программу или нет, и обрабатывать их, если они не включены. Вы можете уведомить пользователя о том, что GPS выключен, и использовать что-то подобное, чтобы показать пользователю экран настроек, если хотите.
Проверьте, доступны ли поставщики услуг определения местоположения
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
}
Если пользователь хочет включить GPS, можно отобразить экран настроек таким образом.
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, REQUEST_CODE);
А в окне OnActivityResult можно посмотреть, включил пользователь эту функцию или нет
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
}
}
}
Это один из способов, и я надеюсь, что это поможет. Дайте мне знать, если я делаю что-то не так.