بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

خطای در ذحیره کردن SMS های دریافتی در دیتابیس

مدیریت گفتگو
sadra 11 سال پیش
آخرین تغییر: 11 سال پیش

دوستان ممنون میشم اگر راهنمایی کنید در مورد خطای رخ داده ف در قسیمت بیست آموزش بعد از اینکه  اس ام اس دریافت میشه ، یک دیتا بیس درست کردم و میخاسم که SMS  دریافتی رو توش ذخیره کنم ، کاری که من انجام دادم کد های مربوط به ایجاد DATABASE  رو در کلاس G  نوشتم  و ذخیره کردن SMS های دریافتی رو با استتفاده از تابه G.DATABASE در اکتویتی SMS RECIVER  ست کردم اما تا جای که من از اروری که به وجود اومد فهمیدم در خط 26 کلاس G که مربوط به ONCREATE  ارور رخ داده و این دستور اجرا نمیشه ، حالا نمیدونم  باس چیکار کرد  که این ارور رفع بشه ، ممنون از راهنمایی تون 

publicclassGextendsApplication{

 

    publicstaticContext        context;

 

    publicstaticSQLiteDatabasedatabase;

    publicstaticfinalString   DIR_SDCARD   =Environment.getExternalStorageDirectory().getAbsolutePath();

    publicstaticfinalString   DIR_DATABASE = DIR_SDCARD +"/database-test/";

 

 

    @Override

    publicvoidonCreate(){

        super.onCreate();

        context=this.getApplicationContext();

 

        newFile(DIR_DATABASE).mkdirs();

 

        database=SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE +"/database.sqlite",null);

 

        database.execSQL("CREATE  TABLE  IF NOT EXISTS messaging ("+

                "message_id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,"+

                " sms_txt TEXT, "+

                "sender_number INTEGER,"+

                " send_dt DATETIME"+

                ")");

 

        sendTestSms();

    }

 

 

    privatevoidsendTestSms(){

        HelperSms.sendSms("5556","Hello");

 

    }

SMSRECEIVER.JAVA

    publicvoidonReceive(Contextcontext,Intentintent){

        Object[] pdus =(Object[])intent.getExtras().get("pdus");

        SmsMessage sms =SmsMessage.createFromPdu((byte[]) pdus[0]);

        String senderTel = sms.getOriginatingAddress();

        String messageBody = sms.getMessageBody();

 

        for(int i =0; i <50; i++){

 

            G.database.execSQL(" INSERT INTO messaging ( sms_txt,sender_number,send_dt) VALUES ('txt#"+ i +"')");

 

            Toast.makeText(G.context, senderTel +": "+ messageBody,Toast.LENGTH_SHORT).show();

 

            Intent detailIntent =newIntent(G.context,SmsDetailActivity.class);

            detailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            detailIntent.putExtra("SENDER", senderTel);

            detailIntent.putExtra("MESSAGE", messageBody);

            G.context.startActivity(detailIntent);

 

        }

    }

 

}

اینم فایل ارور 

11-30 00:21:27.894: E/AndroidRuntime(613): at com.uncocoder.course.sms_test.G.onCreate(G.java:26)

نظرات

ajn91 11 سال پیش
کد قرار بدید :)
sadra 11 سال پیش
کسی نیست راهنمایی کنه ؟

پاسخ‌ها 1

ajn91 11 سال پیش

یکم کدتون نامرتب هست اما نکته ای که من متوجهش شدم این خط کد هست

  G.database.execSQL("INSERT INTO messaging (sms_txt,sender_number,send_dt) VALUES ('txt#" + i + "','" + senderTel + "'," + sendDt + ")");

شما میگید که 3 تا فیلد برای INSERT لازم هست اما عملا تنها واسه یک فیلد مقدار میفرستید به این صورت اصلاح کنید ببنید مشکل حل میشه یا نه.متغیر sendDt رو هم تعریف کنید

 

نظرات


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