Если вы не хотите опроса, если режим полета активен или нет, вы можете зарегистрировать BroadcastReceiver для намерения SERVICE_STATE и отреагировать на него.
Либо в вашем ApplicationManifest:
<receiver android:enabled="true" android:name=".ConnectivityReceiver">
<intent-filter>
<action android:name="android.intent.action.AIRPLANE_MODE"/>
</intent-filter>
</receiver>
или программно:
IntentFilter intentFilter = new IntentFilter("android.intent.action.AIRPLANE_MODE");
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("AirplaneMode", "Service state changed");
}
};
context.registerReceiver(receiver, intentFilter);
И, как описано в других решениях, вы можете опросить режим самолета, когда ваш ресивер был уведомлен и выбросил ваше исключение.