View Full Version : دریافت پیامک و نمایش در برنامه و عدم نمایش در SMSها
nasr
چهارشنبه 21 مرداد 1394, 15:39 عصر
سلام
شاید برنامه همراه بانک ملت را دیده باشید
با پیامک کار میکنه
یعنی درخواست ما از طریق پیامک ارسال میشه و پس از اون یه پیامک دریافت میکنه
حالا این پیامک مثلا شامل مانده حساب مشتری میشه یا ...
اول اینکه چطور این پیامک اصلا داخل پیامک ها نمیشه و با برنامه نشونش میده
دوم اینکه وقتی پیامک میرسه حتی اگه برنامه بسته باشه یه آلارم میده
حالا من میخوام همین کار را انجام بدم
یعنی پیامک های دریافتی از یه شماره خاص را در داخل پیامکها نشون نده و در برنامه نشون بده
با دریافت پیامک یک آلارمی نمایش داده بشه
ممنون میشم راهنمایی کنید
nasr
چهارشنبه 21 مرداد 1394, 16:13 عصر
با این کد تونستم پیامک را دریافت کنم ولی دوتا مشکل دارم
یکی اینکه پیامکی که میاد وارد پیامکهای موبایل میشه که میخوام وارد پیامکها نشه و فقط از طریق برنامه قابل نمایش باشه
دوم اینکه حالا این پیامک را چطور توی برنامه نمایش بدهم
ممنون
public class IncomingSms extends BroadcastReceiver {
// Get the object of SmsManager
final SmsManager sms = SmsManager.getDefault();
public void onReceive(Context context, Intent intent) {
// Retrieves a map of extended data from the intent.
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
// Show Alert
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context,
"senderNum: "+ senderNum + ", message: " + message, duration);
toast.show();
} // end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
}
emperatorsoftware
چهارشنبه 21 مرداد 1394, 18:42 عصر
سلام
اولا برو توو منیفست برنامه و این کد رو اضافه کن
<receiver android:name=".SMSReceiver" >
<intent-filter android:priority="1000" >
<action android:name="android.provider.Telephony.SMS_RECEI VED" />
</intent-filter>
</receiver>
مهم اون خطیه که 1000 نوشته که اضافه کنی فقط برنامه خودت نشون میده
دوم اینکه اس ام اس که توسط برنامت دریافت شد و از شماره مورد نظر بود باید تووی بانک اطلاعاتی برنامت ذخیره کنی وگرنه کلا از بین میره
nasr
پنج شنبه 22 مرداد 1394, 07:36 صبح
یعنی به جای اون 1000 شماره ای را بنویسم که قراره از اون شماره پیامک دریافت بشه؟
درسته؟
چون من میخوام فقط پیامکهای درسافتی از شماره 1000123456789 را در این برنامه نشون بدهم و پیامکهای این شماره داخل SMS Inbox نره
ممنون
jamal_ch
پنج شنبه 22 مرداد 1394, 07:43 صبح
سلام
برنامه اسان فیلتر رو تو مایکت ببین اگه کارتو راه میندازه بهت میفروشم همه کارهایی رو که گفتی انجام میده بجز الارم که اونم فکر نکنم کاری داشت باشه
اگه خواستی سورسشو بهت میفروشم
nasr
پنج شنبه 22 مرداد 1394, 09:12 صبح
الان فقط مشکلم اینه که پیامک از شماره خاص را در پیامکهای موبایل نشون نده
الان پیامک خودم را فیلتر می کنم و در دیتابیس ذخیره می کنم و می تونم توی برنامه خودم نشون بدم
ولی این پیامک نباید در پیامکهای موبایل نشون داده بشه چون یه فرمت خاص داره
مثلا پیامک به این شکل است
A = 94/05/22
B=15000
C=65798
Name=Ali , jafari
k=gharardad
code=65646
که باید در برنامه به شکل خاصی نمایش داده بشه
ممنون میشم راهنمایی کنید
jamal_ch
پنج شنبه 22 مرداد 1394, 11:18 صبح
public void deleteSMS(Context context, String message, String number) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
// Toast.makeText(context, " Start Delete ", 1).show();
Log.i("deleteSMS>>>", " Start Delete ");
String body ="";
String num= "";
Uri uri = Uri.parse("content://sms/inbox");
Cursor c =context.getContentResolver().query(uri, null, null ,null,null);
if(c.moveToFirst())
{
body = c.getString(c.getColumnIndexOrThrow("body")).toString();
num = c.getString(c.getColumnIndexOrThrow("address")).toString();
}
//Toast.makeText(context, "body : " +body +"-- num :" + num, 1).show();
Log.i("deleteSMS>>>", "body : " +body +"-- num :" + num);
int id = c.getInt(0);
int thread_id = c.getInt(1);
// Toast.makeText(context, "id : " +id +"-- thread_id :" + thread_id, 1).show();
Log.i("deleteSMS>>>", "id : " +id +"-- thread_id :" + thread_id);
Uri thread = Uri.parse( "content://sms");
context.getContentResolver().delete( thread, "thread_id=? and _id=?", new String[]{String.valueOf(thread_id), String.valueOf(id)} );
//Toast.makeText(context, "Delete success.........", 1).show();
Log.i("deleteSMS>>>", "Delete success.........");
} catch (Exception e) {
// TODO: handle exception
Log.i("deleteSMS>>>", "not success delete........." + e.toString());
}
}
EBRAHIM_BANIHOSEINI
سه شنبه 13 بهمن 1394, 00:41 صبح
سلام! عزیزان یه سر به سایت http://raygansms.com (http://raygansms.com/Registration.aspx?reg=z8fqD0sV9u+YBArMl4FCb6AgPqWD JiESLHoMk5wuusjpapjVVIFkQw==) بزنید.
وب سرویس پیامک ویژه برنامه نویسان داره.
یه نمونه کد هم توش هست.
کلا پنل و امکان استفاده از وب سرویسش رایگانه. من برای مدرسه گرفتم خیلی راضی هستیم.
تازه یه امکان هم داره که قابلیت
ارسال پیامک از طریق URL که برای ارسال کد فعال سازی و .... عالیه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.