Отключить режим полета в Android

Я хотел бы отключить режим самолета, если num> 50, я реализовал этот код (из режима Toggle airplane в Android ), но когда он выполняется, я набираю силу, может ли кто-нибудь помочь здесь?

if(num>50){ // read the airplane mode setting boolean isEnabled = Settings.System.getInt( getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1; // toggle airplane mode Settings.System.putInt( getContentResolver(), Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1); // Post an intent to reload Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", !isEnabled); sendBroadcast(intent); } 

Ok Я внедрил предчувствия, но я хотел бы изменить оператор if:

 if num>=50 and airplane mode=on toggle it off if airplane mode=off and num<50 toggle it on 

Может ли кто-нибудь помочь мне написать новый код? (Я новичок)

    Вы, скорее всего, не добавили разрешения WRITE_SETTING на ваш AndroidManifest.xml :

     <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

    Также обратите внимание, что код:

      Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", !isEnabled); sendBroadcast(intent); 

    Не предполагается работать, потому что согласно документации по ACTION_AIRPLANE_MODE_CHANGED :

    Это защищенный объект, который может быть отправлен системой.

    И даже если вы можете отправить эту трансляцию без системных разрешений, она может измениться в будущих версиях Android.

    Обязательно установите разрешения для переключения режима самолета в манифест андроида.

    Взгляните сюда Переключить режим самолета в Android

    Обратитесь к следующему коду:

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter intentFilter = new IntentFilter("android.intent.action.SERVICE_STATE"); BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.d("AirplaneMode", "Service state changed"); Toast.makeText(getApplicationContext(), "Service state changed", Toast.LENGTH_LONG).show(); boolean isEnabled = isAirplaneModeOn(context); /* setSettings(context, isEnabled?1:0); Intent intent_mode = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent_mode.putExtra("state", !isEnabled); context.sendBroadcast(intent_mode);*/ if(isEnabled==true) { setSettings(context, isEnabled?1:0); Toast.makeText(getApplicationContext(), "Flight mode on", Toast.LENGTH_LONG).show(); Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0); Intent newIntent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); newIntent.putExtra("state", false); sendBroadcast(newIntent); } else { setSettings(context, isEnabled?1:0); Toast.makeText(getApplicationContext(), "Flight mode off", Toast.LENGTH_LONG).show(); } } @SuppressLint("NewApi") private void setSettings(Context context, int value) { // TODO Auto-generated method stub if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { Settings.System.putInt( context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, value); } else { Settings.Global.putInt( context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, value); } } @SuppressLint("NewApi") public boolean isAirplaneModeOn(Context context) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; } else { return Settings.Global.getInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) != 0; } } }; registerReceiver(receiver, intentFilter); } //permissions needed: 

    // //