2016-08-29 5 views
0

Ich habe eine App, in der Benutzer seine Details in Text eingeben und senden Anfrage an Server senden und nach Server Erfolg Antwort ein Dialogfeld wird geöffnet und Bestätigung vom Benutzer hier Ich möchte überprüfen, ob das Gerät im Flugzeugmodus ist oder nicht, wenn ja Verschieben Sie dann den Dialog "Abmelden", andernfalls senden Sie die Benutzerdetails an den Server.Dialog schließen, wenn App im Flugzeugmodus ist?

Code: -

private final BroadcastReceiver m_oAIRPLANE_MODE_CHECKER = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     otpRequest(); 
    } 
}; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.i(TAG, "onCreate.............."); 
    setContentView(R.layout.registration_screen); 
    defaultConfigration();// defining default configuration 
    init();// Initialize controls 

    /*Registered Broadcast receiver*/ 
    IntentFilter m_intentFilter = new IntentFilter();// creating object of Intentfilter class user for defining permission 
    m_intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");// action to check Internet connection 
    getApplicationContext().registerReceiver(m_oInternetChecker, m_intentFilter);// register receiver.... 

    m_oAirplaneModeIntent = new IntentFilter(); 
    m_intentFilter.addAction("android.intent.action.AIRPLANE_MODE"); 
    getApplicationContext().registerReceiver(m_oAIRPLANE_MODE_CHECKER,m_oAirplaneModeIntent); 
} 
/*Unregistered broadcast receiver*/ 
@Override 
public void onDestroy() {// unregister broadcast receiver ........ 
    super.onDestroy(); 
    Log.i(TAG, "onDestroy............."); 
    getApplicationContext().unregisterReceiver(m_oInternetChecker);// unregistaer broadcast receiver. 
    getApplicationContext().unregisterReceiver(m_oAIRPLANE_MODE_CHECKER); 
} 

hier möchte ich einen Scheck

String sourceString = "We will send you a verification SMS to this Number.<br/><br/> <b><font color='#2196F3'>" + s_szResponseMobileNum + "</b> <br/><br/>Please ensure that this number is active on this device."; 
         m_OTPAlertBuilder = new AlertDialog.Builder(CRegistrationScreen.this, R.style.AppCompatAlertDialogStyle); 
         m_OTPAlertBuilder.setCancelable(false); 
         m_OTPAlertBuilder.setMessage(Html.fromHtml(sourceString)); 
         m_OTPAlertBuilder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int which) { 
           /*This method send request to server to generate OTP*/ 
           /* condition to check whether app is in background*/ 
           if (NetworkUtil.isAppIsInBackground(getApplicationContext())) { 
              /*if app is in background then start service*/ 
            Intent i = new Intent(CRegistrationScreen.this, OtpGenrateService.class); 
            getApplicationContext().startService(i); 
           } else { 
              /*if app is in forground the send data to server*/ 
              /*this method genrate otp */ 
            generateOtp(); 
           } 

          } 
         }); 

Antwort

0

Sie überprüfen können, um, wenn das Gerät im Flugzeugmodus mit diesen Schnipsel ist:

public static boolean isInAirplaneModeOn(Context context){ 
    return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; 
} 

Auch Sie können den Broadcast-Empfänger so einrichten, dass er ACTION_AIRPLANE_MODE_CHANGED Broadcast empfängt. Programatically:

BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      // do your stuff here 
      boolean inAirplaneMode = AirplaneModeHelper.isInAirplaneMode(context); 
      Log.i("AIRPLANE", "In airplane mode: " + inAirplaneMode); 
     } 
}; 
context.registerReceiver(receiver, new IntentFilter("android.intent.action.ACTION_AIRPLANE_MODE_CHANGED")); 

Oder mit manifest:

<receiver android:enabled="true" android:name=".YourReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.ACTION_AIRPLANE_MODE_CHANGED"/> 
    </intent-filter> 
</receiver> 
Verwandte Themen