View Full Version : برنامه ارسال و دریافت پیامک
a-l-mahdi
سه شنبه 30 دی 1393, 11:46 صبح
من میخوام یه برنامه اندرویدی بنویسم که از داخل اون بشه پیامک ارسال و دریافت کرد؛ و وقتی پیامکی دریافت شد، اگه از شماره خاصی بود اون رو داخل پیامکای گوشی نشون نده(مثل همراه بانک ملی) و پیامک ارسالی از این برنامه رو هم داخل پیامکهای گوشی نشون نده. دوستان عزیز اگه راهنماییم کنید خیلی ممنون میشم.
ali_khodayar
سه شنبه 30 دی 1393, 14:32 عصر
این کد ارسال اس ام اس .
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("+989125555555", null,"Your Message" , null, null);
ali_khodayar
سه شنبه 30 دی 1393, 15:21 عصر
این هم کد دریافت اس ام اس در Inbox مخفی از یک شماره خاص.
public class SmsFilter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle extras = intent.getExtras();
if (extras != null) {
Object[] pdus = (Object[])extras.get("pdus");
if (pdus.length < 1) return; // Invalid SMS. Not sure that it's possible.
StringBuilder sb = new StringBuilder();
String sender = null;
for (int i = 0; i < pdus.length; i++) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (sender == null) sender = message.getOriginatingAddress();
String text = message.getMessageBody();
if (text != null) sb.append(text);
}
if (sender != null && sender.equals("+989125555555")) {
// Process our sms...
Toast.makeText(context, "sdfsfsf", Toast.LENGTH_LONG).show();
abortBroadcast();
}
return;
}
}
// ...
}
}
a-l-mahdi
سه شنبه 30 دی 1393, 21:34 عصر
این هم کد دریافت اس ام اس در Inbox مخفی از یک شماره خاص.
public class SmsFilter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle extras = intent.getExtras();
if (extras != null) {
Object[] pdus = (Object[])extras.get("pdus");
if (pdus.length < 1) return; // Invalid SMS. Not sure that it's possible.
StringBuilder sb = new StringBuilder();
String sender = null;
for (int i = 0; i < pdus.length; i++) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (sender == null) sender = message.getOriginatingAddress();
String text = message.getMessageBody();
if (text != null) sb.append(text);
}
if (sender != null && sender.equals("+989125555555")) {
// Process our sms...
Toast.makeText(context, "sdfsfsf", Toast.LENGTH_LONG).show();
abortBroadcast();
}
return;
}
}
// ...
}
}
این مطلبی که شما فرمودید رو من تو لینک زیر دیدم ولی گفته در اندروید 4.4 (کیت کت) جواب نمیده
http://stackoverflow.com/questions/9175969/how-to-prevent-sms-going-to-inbox-in-android
فقط یه عرض کوچیک دیگه؛ من از همین کد باید چطوری استفاده کنم، آخه یه برنامه از این کد نوشتم، که داخل شبیه ساز Force Close میده.
hossein_sys
سه شنبه 30 دی 1393, 22:47 عصر
سلام
این پاسخ دوستمون درسته ولی وقتی که GO SMS نصب باشه ، اول اون پیام رو میگیره و نمایش میده ...
به دلیل priority بالایی که براش تعریف کردن ...
با اینکه بنده هم بالاترین اولویت رو برای نرم افزار خودم قرار دادم ولی باز اون برنده میشد !!!
اگر کسی نظری داره راجع به اصلاح این قضیه ، لطفا نظر خودش رو بگه ، بسم الله ...
ali_khodayar
چهارشنبه 01 بهمن 1393, 07:54 صبح
این مطلبی که شما فرمودید رو من تو لینک زیر دیدم ولی گفته در اندروید 4.4 (کیت کت) جواب نمیده
http://stackoverflow.com/questions/9175969/how-to-prevent-sms-going-to-inbox-in-android
فقط یه عرض کوچیک دیگه؛ من از همین کد باید چطوری استفاده کنم، آخه یه برنامه از این کد نوشتم، که داخل شبیه ساز Force Close میده.
من با شبیه ساز تست نکردم و نمیدونم. اما این یک کلاس هست که میتونی با همین نام و یا نام دیگه ای به پروژت اضافه کنی . BroadcastReceiver ها همیشه در حال اجرا هستند. به محض اینکه پیامی از اون شماره خاص دریافت کنن ، اون رو به قول معروق مخفی و نمایش نمیدهند.
در مورد ورژن اندروید هم باید عرض کنم که من هم با ورژن 4.2.2 و هم 4.1 تست کردم جواب داده.
ali_khodayar
چهارشنبه 01 بهمن 1393, 07:57 صبح
سلام
این پاسخ دوستمون درسته ولی وقتی که GO SMS نصب باشه ، اول اون پیام رو میگیره و نمایش میده ...
به دلیل priority بالایی که براش تعریف کردن ...
با اینکه بنده هم بالاترین اولویت رو برای نرم افزار خودم قرار دادم ولی باز اون برنده میشد !!!
اگر کسی نظری داره راجع به اصلاح این قضیه ، لطفا نظر خودش رو بگه ، بسم الله ...
نه نیازی به نصب بودن این برنامه نیست. من این برنامه رو اصلأ ندارم و برنامه هم خیلی خوب کار میکنه.
a-l-mahdi
چهارشنبه 01 بهمن 1393, 20:20 عصر
من با شبیه ساز تست نکردم و نمیدونم. اما این یک کلاس هست که میتونی با همین نام و یا نام دیگه ای به پروژت اضافه کنی . BroadcastReceiver ها همیشه در حال اجرا هستند. به محض اینکه پیامی از اون شماره خاص دریافت کنن ، اون رو به قول معروق مخفی و نمایش نمیدهند.
در مورد ورژن اندروید هم باید عرض کنم که من هم با ورژن 4.2.2 و هم 4.1 تست کردم جواب داده.
با عرض تشکر و خسته نباشید
یه خواهش کوچولو داشتم
میشه یه سورس از همین برنامه ارسال و دریافت پیامک بدی که رو اندروید پایین تر از Kitkat کار کنه
چون من هنوز مبتدی هستم و اون کدها رو تست کردم ERROR داد.
اگه کمکم کنی ممنون میشم چون واقعا لازم دارم و واجبه
ممنون..........................
a-l-mahdi
چهارشنبه 01 بهمن 1393, 22:34 عصر
آقا هر کدوم از دوستان وقت داره وبراش ممکن هست لطف کنه این برنامه ای که در لینک زیر هست رو با استفاده از اون کدی که دوستان در بالا گفتن رو تغییر بده...
منظورم اینه که داخل این برنامه فقط پیامهایی رو نشون بده که مربوط میشه به شماره مورد نظر وارد شده در برنامه(و بقیه پیامکا بطور عادی داخل Inbox گوشی بیاد)
http://androidexample.com/Incomming_SMS_Broadcast_Receiver_-_Android_Example/index.php?view=article_discription&aid=62&aaid=87
آقا ممنون............
چون واقعا لازمش دارم این درخواست رو دادم.
a-l-mahdi
پنج شنبه 02 بهمن 1393, 22:25 عصر
دوستان ازتون خواهش میکنم جوابمو بدید....
dele_ghamgin_2008
پنج شنبه 02 بهمن 1393, 22:40 عصر
سلام . من یه برنامه میخوام که بتونم اطلاع رسانی کنم . یعنی نرم افزاری واسه اندروید که هر کس که روی گوشیش نصب کرد ، من به عنوان مدیر بتونم توش یه پیغامی رو بنویسمو ارسال رو بزنم و هر کس که این برنامه روی گوشیش هست مثل اس ام اس براش این پیام ارسال بشه و بهش آلارم زده بشه که از طریق این برنامه یه پیام جدید دارید و مثل اس ام اس نشون بده عدد1 رو . و هر تعداد رو که نخونده داشته باشه بهش نشون بده که مثلا 5 پیام خوانده نشده . میتونید برام بسازید ؟ به من پیام خصوصی بدید . قیمت هم اعلام کنید.
hossein_sys
جمعه 03 بهمن 1393, 19:12 عصر
نه نیازی به نصب بودن این برنامه نیست. من این برنامه رو اصلأ ندارم و برنامه هم خیلی خوب کار میکنه.
دوست عزیز منظور بنده از برنامه GO SMS نیاز به نصب بودن اون نیست بلکه تزاحمی که وقتی این برنامه هم همراه نرم افزار خودتون نصب باشه ، پیش میاد که فعلا راه حلی براش پیدا نشده ...
a-l-mahdi
شنبه 04 بهمن 1393, 02:06 صبح
دوست عزیز منظور بنده از برنامه GO SMS نیاز به نصب بودن اون نیست بلکه تزاحمی که وقتی این برنامه هم همراه نرم افزار خودتون نصب باشه ، پیش میاد که فعلا راه حلی براش پیدا نشده ...
من برای شما پیغام خصوصی فرستادم ولی تو پیامهای ارسال شده نیومد اگه بدست شما نرسیده؛ بفرمایید تا براتون ایمیل کنم.
alimooghashang
پنج شنبه 11 تیر 1394, 14:55 عصر
این هم کد دریافت اس ام اس در Inbox مخفی از یک شماره خاص.
public class SmsFilter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle extras = intent.getExtras();
if (extras != null) {
Object[] pdus = (Object[])extras.get("pdus");
if (pdus.length < 1) return; // Invalid SMS. Not sure that it's possible.
StringBuilder sb = new StringBuilder();
String sender = null;
for (int i = 0; i < pdus.length; i++) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (sender == null) sender = message.getOriginatingAddress();
String text = message.getMessageBody();
if (text != null) sb.append(text);
}
if (sender != null && sender.equals("+989125555555")) {
// Process our sms...
Toast.makeText(context, "sdfsfsf", Toast.LENGTH_LONG).show();
abortBroadcast();
}
return;
}
}
// ...
}
}
با وجود GO SMS کار نمیده
Mask
پنج شنبه 07 آبان 1394, 20:29 عصر
برنامه همراه بانک مورد نظر (بانک ملی که فکر کنم توسط شرکت خدمات نوشته شده) مکانیزم ارسال و دریافت پیام اون به صورت Data Sms که محدودیت های مربوط به Text Sms در کیت کت رو نداره!
undle bundle = intent.getExtras();
String recMsgString = "";
String fromAddress = "";
SmsMessage recMsg = null;
byte[] data = null;
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
for (int i=0; i<pdus.length; i++){
recMsg = SmsMessage.createFromPdu((byte[])pdus[i]);
try {
data = recMsg.getUserData();
} catch (Exception e){
}
if (data!=null){
for(int index=0; index<data.length; ++index)
{
recMsgString += Character.toString((char)data[index]);
}
}
fromAddress = recMsg.getOriginatingAddress();
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.