Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2018, 12:56   #1
илья123456
Пользователь
 
Регистрация: 14.05.2014
Сообщений: 29
По умолчанию Работа с массивами

В общем есть вот такой код. Но проблема теперь в следующем. Только без смеха. Как разбить принятое смс на строки и этим строкам присвоить с помощью swich другие значения. Например пришло сообщение 123321123 и разбить его скажем на 3 части типо 123 321 123 и 123 присвоить типо вкл, 321 выкл, 123 пообщайся со мной.

Цитата:
package com.prm.priem;

import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
//import android.os.IBinder;
import android.telephony.SmsMessage;

//import android.widget.TextView;
import android.widget.Toast;

public class SMSMonitor extends BroadcastReceiver {
public static final String SMS_EXTRA_NAME = "pdus";// ключ


public static final String ADDRESS = "address"; //пользователь

public static final String BODY = "body";//текст сообщения

private static final String ACTION = "android.provider.Telephony.SMS_REC EIVED";
public void onReceive( Context context, Intent intent ) //cmc
{

// Получите SMS-карту от намерения
Bundle extras = intent.getExtras();
StringBuilder messages = new StringBuilder();

if ( extras != null && intent.getAction() != null && ACTION.compareToIgnoreCase(intent.g etAction()) == 0) {
// Получить полученный массив SMS
Object[] smsExtra = (Object[]) extras.get(SMS_EXTRA_NAME);
for (int i = 0; i < smsExtra.length; i++) {
Object aSmsExtra = smsExtra[i];
SmsMessage sms = SmsMessage.createFromPdu((byte[]) aSmsExtra);


String body = sms.getMessageBody().toString();
String address = sms.getOriginatingAddress();

messages.append("SMS from ").append(address).append(" :\n");
messages.append(body).append("\n");
}
}

Toast.makeText( context, messages.toString(), Toast.LENGTH_SHORT ).show();

}
}
Цитата:
package com.prm.priem;


import android.content.ContentResolver;

import android.database.Cursor;

import android.net.Uri;
import android.support.v7.app.AppCompatAct ivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

this.findViewById( R.id.UpdateList ).setOnClickListener(this);

}

ArrayList<String> smsList = new ArrayList<String>();

public void onItemClick( AdapterView<?> parent, View view, int pos, long id )
{

}

public void onClick( View v )
{
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 );

if ( indexBody < 0 || !cursor.moveToFirst() ) return;

smsList.clear();

do{
if (cursor.getString(indexAddr).equals ("+79681280395")) {

String str = "Принятое смс: " + cursor.getString(indexAddr) + "\n" + cursor.getString(indexBody);
smsList.add(str);
}

}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 );
}

@Override
public void onPointerCaptureChanged(boolean hasCapture) {

}
}
илья123456 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами. Vyacheslav. Общие вопросы Delphi 0 15.11.2017 18:11
РАБОТА С МАССИВАМИ neolanta Паскаль, Turbo Pascal, PascalABC.NET 5 18.12.2013 19:52
Работа с массивами madishka Помощь студентам 2 17.12.2010 21:45
Работа с массивами SnowSin Помощь студентам 0 05.12.2009 14:08
Работа с массивами Maxx Microsoft Office Excel 10 23.11.2009 16:37