بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
سوال در مورد پروژه دریافت SMS
باعرض سلام خدمت دوستان
من نرم افزاری دارم که میخوام پیامک وقتی از فلان شماره میاد، توی دیتابیس ذخیره بشه. حالا همه چیزش حله فقط نمیدونم چرا حدودا 60وخورده ای کاراکتر بیشتر ذخیره میکنه تو دیتابیس.نوع متغیر رو از نوع TEXT و VARCHAR انتخاب کردم بازهم فایده نداشت
قطعه کد رو هم گذاشتم
ممنونم راهنمایی کنین
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdus[0]);
String senderTel = sms.getOriginatingAddress();
String messageBody = sms.getMessageBody();
G.database.execSQL("INSERT INTO melliSMS (sms) VALUES ('" + messageBody + "')");
Toast.makeText(G.context, "smsReceived", Toast.LENGTH_SHORT).show();
}
else
{
// Toast.makeText(G.context, "false", Toast.LENGTH_SHORT).show();
}
}
}
}
برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال
یاسر
9 سال پیش
+3
0
چون شما فقط محتوای یک اس ام اس رو میخونید از این کد استفاده کنید
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class SmsReciver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String SmSBody = "";
if (bundle != null)
{
// Retrieve the SMS Messages received
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
// For every SMS message received
for (int i = 0; i < msgs.length; i++)
{
// Convert Object array
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
// Fetch the text message
SmSBody += msgs[i].getMessageBody().toString();
}
}
}
}
حالا SmSBody رو میتونید ذخیره کنید
پاسخ به سوال
یاسر
9 سال پیش
+2
0
پیدا کردن شماره فرستنده هم کاری نداره
میتونید از این کد که کامل تر هست استفاده کنید
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import java.util.ArrayList;
public class SmsBroadcast extends BroadcastReceiver {
//متن پیام
private String content = "";
//شماره فرستنده
private String sender = "";
@Override
public void onReceive(Context context, Intent 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]);
sender = currentMessage.getDisplayOriginatingAddress();
content += currentMessage.getDisplayMessageBody();
}
}
Log.i("TAG", "sender:" + sender + "content: " + content);
} catch (Exception e) {
Log.e("TAG", "Exception smsReceiver" + e);
}
}
}
برای تشکر هم از دکمه لایک استفاده کنید :)
پاسخ به سوال
یاسر
9 سال پیش
+2
0
البته قرار دادن کد های آمده کار درستی نیست و شما باید خودتون هم سرچ کنید و به نتیجه برسید
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = df.format(c.getTime());
میتونید از formattedDate استفاده کنید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .