2017-12-29 23 views
0

アンドロイドでユーザーが場所をオフにした場合、どうすればそれを識別できますか? 設定に行くためのダイアログも表示します。ユーザーが場所をオフにしている場合、アンドロイドを知る方法

+0

このライブラリを試してみてくださいhttps://github.com/NikhilBorad/BaseHelp それは、Android開発のすべての基本機能を持っています。このライブラリを使って、この問題を解決することができます。 –

答えて

1

以下のコードを使用して、gpsプロバイダとネットワークプロバイダが有効かどうかを確認できます。

LocationManager lm = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 
boolean gps_enabled = false; 
boolean network_enabled = false; 

try { 
    gps_enabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER); 
} catch(Exception ex) {} 

try { 
    network_enabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
} catch(Exception ex) {} 

if(!gps_enabled && !network_enabled) { 
    // notify user 
    AlertDialog.Builder dialog = new AlertDialog.Builder(context); 
    dialog.setMessage(context.getResources().getString(R.string.gps_network_not_enabled)); 
    dialog.setPositiveButton(context.getResources().getString(R.string.open_location_settings), new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface paramDialogInterface, int paramInt) { 
       // TODO Auto-generated method stub 
       Intent myIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
       context.startActivity(myIntent); 
       //get gps 
      } 
     }); 
    dialog.setNegativeButton(context.getString(R.string.Cancel), new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface paramDialogInterface, int paramInt) { 
       // TODO Auto-generated method stub 

      } 
     }); 
    dialog.show();  
} 
1
public static boolean canGetLocation() { 
    return isLocationEnabled(App.appInstance); // application context 
} 

public static boolean isLocationEnabled(Context context) { 
    int locationMode = 0; 
    String locationProviders; 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     try { 
      locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE); 
     } catch (Settings.SettingNotFoundException e) { 
      e.printStackTrace(); 
     } 
     return locationMode != Settings.Secure.LOCATION_MODE_OFF; 
    } else { 
     locationProviders = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_MODE); 
     return !TextUtils.isEmpty(locationProviders); 
    } 
} 

これは、デバイスの場所が有効かどうか、これがお役に立てば幸いしているかどうかを確認するための簡単なツールです。

これは、有効かどうかを示す論理値を返します。

そして、あなたは警告ダイアログクリックリスナーから以下の意図を使用していない場所の設定をナビゲートすることができ、

startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); 
+1

ありがとうございました!魅力的な作品! – Sobinscott

関連する問題