2015-04-27 2 views
1

Jusqu'à API niveau 16, il est possible d'activer/désactiver le mode avion dans les appareils Android. Du niveau de l'API de 17, il semble que le Settings.Global, qui est en lecture seule a remplacé le Settings.System.Est-il possible d'allumer et d'éteindre le mode avion dans l'appareil Android

Je veux savoir, est-il possible d'activer/désactiver le mode avion par programme dans l'usure android (Moto 360) qui n'est pas enracinée.

enter image description here enter image description here

+1

essayer cette Settings.Global.putInt (mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, isAirplaneModeOn); – krishnan

+0

Comme je l'ai déjà mentionné ci-dessus, Settings.Global lit les paramètres, mais il n'a pas d'autorisation en écriture. Je veux dire, j'ai essayé et ne travaille pas. – praba230890

+0

Ce n'est plus possible comme vous l'avez pensé, pour des raisons évidentes de sécurité. –

Répondre

1

Ce code fonctionne correctement sur l'appareil Enracinés.

Pour allumer:

 b1=(Button)findViewById(R.id.button1); 
     b1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        Process process; 
        process = Runtime.getRuntime().exec("su -c settings put global airplane_mode_on 1;am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true"); 
        BufferedReader bufferedReader = new BufferedReader(
          new InputStreamReader(process.getInputStream())); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 

Pour désactiver:

 b2=(Button)findViewById(R.id.button1); 
     b2.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) {    
       try { 
        Process process; 
        process = Runtime.getRuntime().exec("su -c settings put global airplane_mode_on 0;am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false"); 
        BufferedReader bufferedReader = new BufferedReader(
          new InputStreamReader(process.getInputStream())); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 
+0

Oui, cela fonctionne sur les appareils enracinés, mais je veux une solution pour les appareils non enracinés. – praba230890