Всем привет. В общем я создаю приложение через андроид студио для контроллера. У меня уже есть чтобы обратится к нему и получить что то от него, но я застрял на двух пунктах:
1) как сделать автообновление содержимого окна, т.е у меня идет общение по средствам смс, и когда приходит новое смс оно должно автоматически показаться в окошке, чтобы я не нажимал кнопку "обновить" постоянно.
2) пытался сделать что то на подобие будильника, только мне нужно задать время и день недели чтобы отсылалась команда в контроллер автоматически т.е снималась с охраны и ставилась, находил много примеров, и делал попытки но кроме как тупо нажать на кнопку и нечего выставлять не смог сделать. Смотрел и другие видеоролики где они выставляют, но у меня такого как у них нет.
Если есть у кого то примеры как сделать или может кто знает как сделать подскажите.
Заранее спасибо)
Код:
ArrayList<String> smsList = new ArrayList<String>();
//-----------функция для обработки смс-----------------------------------------------------------------
private void smstip() {
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query( Uri.parse( "content://sms/inbox" ), null, null, null, null);
//-----------------------передача данных в переменные-----------------------------------------------------
int indexBody = cursor.getColumnIndex( SMSMonitor.BODY );
int indexAddr = cursor.getColumnIndex( SMSMonitor.ADDRESS );
//----------------------проверка не пустое ли смс------------------------------------------------------
//smsList.clear();
if ( indexBody < 0 || !cursor.moveToFirst() ) return;
//--------------выгрузка смс--------------------------------------------------------------
do {
String bi = cursor.getString(indexBody); //k с какого символа начинать, x количество символов от начала
char bi2[]=bi.toCharArray();
String str ;
//--------------------------проверка от того ли пришло смс или нет--------------------------------------------------
if (cursor.getString(indexAddr).equals("+7954242354")) {
//-------------------------разбиение смс на команды и переприсвоение им---------------------------------------------------
for (int i=0; i<9; i++) {
if (i == 0) {//Проверка первого флага
switch (bi2[i]) {
case '1':
str = "Принятое смс: " + cursor.getString(indexAddr) + "\n" + "Первая команда " + bi2[i];
smsList.add(str);
break;
default:
str = "Извините команды с номером №"+ bi2[i] + "не существует. Проверьте правильность команды или обратитесь к администратору";
smsList.add(str);
break;
} }
if (i == 1) {//Проверка второго флага
switch (bi2[i]) {
case '7':
str = "Принятое смс: " + cursor.getString(indexAddr) + "\n" + "Вторая команда " + bi2[i];
smsList.add(str);
//запуск музыки
mPlayer.start();
stopButton.setEnabled(true);
ImageView img = findViewById(R.id.animationView);
img.setBackgroundResource(R.drawable.animation_item);
// получаем объект анимации
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
frameAnimation.setOneShot(false);
// запуск анимации
frameAnimation.start();
break;
default:
str = "Извините команды с номером №"+ bi2[i] + "не существует. Проверьте правильность команды или обратитесь к администратору";
smsList.add(str);
break;
} }
if (i == 2) {//Проверка третьего флага
switch (bi2[i]) {
case '3':
str = "Принятое смс: " + cursor.getString(indexAddr) + "\n" + "Третья команда " + bi2[i];
smsList.add(str);
break;
default:
str ="Извините команды с номером №"+ bi2[i] + "не существует. Проверьте правильность команды или обратитесь к администратору";
smsList.add(str);
break;
} }
if (i == 3) {//Проверка четвертого флага
switch (bi2[i]) {
case '8':
str = "Принятое смс: " + cursor.getString(indexAddr) + "\n" + "Четвертая команда " + bi2[i];
smsList.add(str);
break;
default:
str = "Извините команды с номером №"+ bi2[i] + "не существует. Проверьте правильность команды или обратитесь к администратору";
smsList.add(str);
break;
}
}
if (i == 4) {//Проверка пятого флага
switch (bi2[i]) {
case '0':
str = "Принятое смс: " + cursor.getString(indexAddr) + "\n" + "Пятая команда " + bi2[i];
smsList.add(str);
break;
default:
str = "Извините команды с номером №"+ bi2[i] + "не существует. Проверьте правильность команды или обратитесь к администратору";
smsList.add(str);
break;
} }
}
}
} while (cursor.moveToNext());
//---------------------------выгрузка всего что было получено на экран-------------------------------------------------
ListView smsListView = (ListView) findViewById( R.id.SMSList );
smsListView.setAdapter( new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, smsList) );
smsListView.setOnItemClickListener( this );
}
//--------------получение смс--------------------------------------------------------------
public void onClick( View v )//обновление смс
{
smstip();
}