PDA

View Full Version : خواندن متن اس ام اس



mehdi.safavie
شنبه 18 مهر 1394, 17:26 عصر
درود;

یه کلاس برای BrodcastReceiver نوشتم که وقتی اس ام اس میاد چک کن متن رو بخونه اگر با متنی که براش تعیین کردم برابر بود یه فایل mp3 رو پخش کنه ، البته قبل از پخش گوشی رو از حالت silent خارج میکنه .

همه چیز به درستی کار میکنه :


@Override
public void onReceive(Context context, Intent intent)
{


MainActivity mActivity = null;




final MediaPlayer mediaPlayer;
final SoundPool soundPool;
HashMap<Integer, Integer> soundPoolMap;
final int soundID = 1;


mediaPlayer = MediaPlayer.create(context, R.raw.sound_warning);
soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);
soundPoolMap = new HashMap<Integer, Integer>();
//soundPoolMap.put(soundID, soundPool.load(this, R.raw.midi_sound, 1));
soundPoolMap.put(soundID, soundPool.load(context, R.raw.sound_warning, 1));






//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
str = msgs[i].getMessageBody().toString();
}
//---display the new SMS message---






if(str.trim() == "Mehdi".trim()){
//=====


AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUD IO_SERVICE);
int maxVolumeMusic = audioManager.getStreamMaxVolume(AudioManager.STREA M_MUSIC);
audioManager.setRingerMode(AudioManager.RINGER_MOD E_NORMAL);
audioManager.setStreamVolume(AudioManager.STREAM_M USIC, maxVolumeMusic, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);




// TODO Auto-generated method stub
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
}
//=====
}
else
{
Toast toast = Toast.makeText(context,str,Toast.LENGTH_LONG);
toast.show();
}
}
}


فقط زمانی که اس ام اس دقیقا همین "Mehdi" میاد ، دستور IF کار نمیکنه و Else رو اجرا میکنه .
من Mehdi رو اس ام اس میکنم ، ولی انگار Mehdi اس ام اس نمیشه ! مشکل کجاست ؟

amirali001
شنبه 18 مهر 1394, 19:57 عصر
سلام ، شما از کد زیر استفاده کردید

if(str.trim() == "Mehdi".trim()){

خاصیت و نحوه کار trim رو میدونید چیه و چطوره ؟!
اگه بدونید قطعا مشکلتون حل میشه
فکر کنم فهمیدید مشکلتون چیه !
موفق باشید

mehdi.safavie
شنبه 18 مهر 1394, 22:32 عصر
خاصیتش که فاصله خالی اضافه قبل و بعد از رشته رو حذف میکنه
نحوه کارش هم خب به همین صورته که نوشتم .

تا زمانی که دیدگاه من از این خط کد درسته ، به هیچ وجه متوجه اشتباهم نمیشم . متاسفانه هیچ دیدگاه دیگه ای نمیتونم فعلا داشته باشم .
مشکل از کجاست خب ؟

mehdi.safavie
یک شنبه 19 مهر 1394, 00:17 صبح
با یه راه حل دیگه تونستم به جوابم برسم اما هنوز متوجه اشتباهی که شما گفتید من مرتکب شدم نشدم ، لطفا بگین تا یاد بگیرماز این راه رفتم :if(avali.contains(dovomi)){

EBRAHIM_BANIHOSEINI
سه شنبه 13 بهمن 1394, 00:31 صبح
سلام! عزیزان یه سر به سایت http://raygansms.com (http://raygansms.com/Registration.aspx?reg=z8fqD0sV9u+YBArMl4FCb6AgPqWD JiESLHoMk5wuusjpapjVVIFkQw==) بزنید.
وب سرویس پیامک ویژه برنامه نویسان داره.
یه نمونه کد هم توش هست.
کلا پنل و امکان استفاده از وب سرویسش رایگانه. من برای مدرسه گرفتم خیلی راضی هستیم.
تازه یه امکان هم داره که قابلیت
ارسال پیامک از طریق URL که برای ارسال کد فعال سازی و .... عالیه