آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سوال در مورد پروژه دریافت SMS

Ali asqar akhavan mahdavi  9 سال پیش  9 سال پیش
+2 0

باعرض سلام خدمت دوستان

من نرم افزاری دارم که میخوام پیامک وقتی از فلان شماره میاد، توی دیتابیس ذخیره بشه. حالا همه چیزش حله فقط نمیدونم چرا حدودا 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 رو میتونید ذخیره کنید

0 0
ممنونم از لطفتون دوست عزیز. اما من شماره ی فرستنده هم برام مهمه.ممنون میشم بازم راهنمایم کنین (9 سال پیش)
پاسخ به سوال 
یاسر   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);
} } }
 

برای تشکر هم از دکمه لایک استفاده کنید :)

0 0
بازم تشکر میکنم دوست عزیز فقط من زمان رو هم نیاز دارم.امکانش هست زمان رو هم برا من قرار بدین؟ (9 سال پیش)
پاسخ به سوال 
یاسر   9 سال پیش
+2 0

البته قرار دادن کد های آمده کار درستی نیست و شما باید خودتون هم سرچ کنید و به نتیجه برسید

      Calendar c = Calendar.getInstance();
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String formattedDate = df.format(c.getTime());

میتونید از formattedDate استفاده کنید


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .