2012-06-21 2 views
0
public class AirPlaneModeActivity extends Activity { 

Button b; 
TimePicker tp; 
Calendar cal; 
AlarmManager am ; 
PendingIntent pi; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    b = (Button)findViewById(R.id.button1); 
    tp = (TimePicker)findViewById(R.id.timePicker1); 
    cal = Calendar.getInstance(Locale.getDefault()); 
    am = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    tp.setIs24HourView(true);   

    b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      cal.set(Calendar.HOUR_OF_DAY,tp.getCurrentHour()); 
      cal.set(Calendar.MINUTE,tp.getCurrentMinute()); 
      cal.set(Calendar.SECOND,0); 
     } 
    }); 

    pi = PendingIntent.getBroadcast(this, 0, setAPM(), 0);  
    am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),pi);   

} 
public Intent setAPM(){ 
    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); 
    return intent;   
} 

} 

Я хочу изменить воздушный план в заданное время, которое я получаю от таймера.Установить воздушный самолет в определенное время

Затем я установил время от таймпикера в каландр от ведьмы. Я получаю время для метода alarmmanager.set, но он ничего не делает.

Я смотрю по всему Интернету, но ничего не нашел. Я нашел этот пост на stackoverflow, но без ответа (Извините за мой плохой английский) Спасибо за ваши ответы

ответ

0

Я нашел это в My code toggles airplane mode continuously

/** Code snippet in AirplaneModeService*/ 
@Override 
public void onCreate() { 
    airplaneModeToggler = new AirplaneModeToggler(this); 
    Thread mThread = new Thread(null, airplaneModeToggleTask, "AirplaneModeToggleTask"); 
    mThread.start(); 
} 

private Runnable airplaneModeToggleTask = new Runnable() { 
    @Override 
    public void run() { 
     airplaneModeToggler.toggle(null); 
     AirplaneModeService.this.stopSelf(); 
    } 
}; 

Я думаю, что вам нужно сделать асинхронную задачу г, что как вы можете видеть здесь или в сообщении, которое я связал с вами.

Edit: я здесь нашел How can one detect airplane mode on Android? в ответ так, чтобы знать, если она включена или нет (сделать что-то или нет;))

/** 
* Gets the state of Airplane Mode. 
* 
* @param context 
* @return true if enabled. 
*/ 
private static boolean isAirplaneModeOn(Context context) { 

    return Settings.System.getInt(context.getContentResolver(), 
      Settings.System.AIRPLANE_MODE_ON, 0) != 0; 

} 

И, наконец, я нашел эту http://dustinbreese.blogspot.com.es/2009/04/andoid-controlling-airplane-mode.html где я думаю, что там это все, что тебе нужно!

Смежные вопросы