Могу ли я программно щелкнуть кнопку для заранее определенного намерения?

104

Мне нужно нажатие кнопки намерения ACTION_SEND. Здесь нет необходимости отображать UI. Могу ли я получить нажатие кнопки «Отправить» в MMS-SMSProvider в Android?

Информация
источник

Ответы:

243

Вы можете щелкнуть кнопку программно, используя button.performClick()метод.

Нирав Бхандари
источник
47

Если ваша кнопка включает в себя какую-либо анимацию, вам необходимо выполнить щелчок, а затем сделать недействительным каждый шаг после performClick. Вот как:

 button.performClick();
 button.setPressed(true); 
 button.invalidate(); 
 button.setPressed(false); 
 button.invalidate(); 

Иногда мне также приходилось вводить задержку, чтобы показать анимацию. Как это:

 //initiate the button
 button.performClick();
 button.setPressed(true); 
 button.invalidate(); 
 // delay completion till animation completes
 button.postDelayed(new Runnable() {  //delay button 
     public void run() {  
        button.setPressed(false); 
        button.invalidate();
        //any other associated action
     }
 }, 800);  // .8secs delay time
PeteH
источник
6
button.callOnClick();

это также можно использовать

вспышка
источник
Требуется уровень API 15 и выше
алексрнов