انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در دخیره پیام ورودی در دیتابیس در برنامه نویسی اندرویید

مشکل در دخیره پیام ورودی در دیتابیس در برنامه نویسی اندرویید

#1
با سلام
من میخوام پیام ورودی رو چک کنم اگر پیام از شماره که قبلا مشخص  شده بود در دیتابیس ذخیره بشه 
ولی نمیدونم چرا موقع ذخیره شدن برنامه فورس کلوز میده

کد های مربوط به دیتابیس

کد پی‌اچ‌پی:
public class DatabaseHelper extends SQLiteOpenHelper  {
    
    public static 
String DATABASE "dbsms";
    public static 
String TABLESMS "tablsms";
    public static 
String NUMMSG "numsg";



    public 
DatabaseHelper(Context context) {
        
super(contextDATABASEnull1);
        
// TODO Auto-generated constructor stub
    
}

    @
Override
    
public void onCreate(SQLiteDatabase db) {
        
// TODO Auto-generated method stub
        
db.execSQL("CREAT TABLE "TABLESMS +" (" NUMMSG " TEXT)");
    }

    @
Override
    
public void onUpgrade(SQLiteDatabase dbint arg1int arg2) {
        
// TODO Auto-generated method stub
        
        
db.execSQL("DROP TABLE IF EXISTS " TABLESMS);
        
onCreate(db);
    }



کد های مربوط به BroadcastReceiver

کد پی‌اچ‌پی:
public class Smsrec extends BroadcastReceiver {
    
DatabaseHelper dbh;
SQLiteDatabase db;
ContentValues conntent;

String savesms;

        public static final 
String SMS_BUNDLE "pdus";
       
        public 
void onReceive(Context contextIntent intent) {
            
Bundle intentExtras intent.getExtras();
            if (
intentExtras != null) {
                
Object sms = (Object) intentExtras.get(SMS_BUNDLE);
                
String smsMessageStr "";
                for (
int i 0sms.length; ++i) {
                    
SmsMessage smsMessage SmsMessage.createFromPdu((bytesms[i]);

                    
String msgsms smsMessage.getMessageBody().toString();
                    
String numsms smsMessage.getOriginatingAddress();
                    
    
                    
dbh = new DatabaseHelper(context);
       
dbh.getWritableDatabase();
                   
conntent = new ContentValues();
    if (
numsms.equals("+98939******")) {

        
        
conntent.put(dbh.NUMMSGmsgsms);
        
db.insert(dbh.TABLESMSnullconntent);
        
        
Toast.makeText(context"ok"2000).show();
        
        
    }
                }
            }
        }


اگر کسی راه بهتری برای این کار میشناسه لطفا راهنمایی کن
 
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ

مشکل در دخیره پیام ورودی در دیتابیس در برنامه نویسی اندرویید

#2
دوست عزیز
لینک زیر میتونه به شما کمک کنه
http://openandroid.ir/2015/07/%d8%b3%d9%...%a7%d8%b3/‎‫

 
پاسخ

مشکل در دخیره پیام ورودی در دیتابیس در برنامه نویسی اندرویید

#3
دوست عزیز من سورس برنامه نمیخوام 
فقط سوال پرسیدم اگر کسی جوابش بلد بود لطف کنه بگه
من اگه قرار بود واس هر مشکل سورس بخرم که باید ایدیتتور برنامه اندرویید کار میکردم
شیرینی برنامه نویسی به این که خودت کد بنویسی
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ

مشکل در دخیره پیام ورودی در دیتابیس در برنامه نویسی اندرویید

#4
جواب سوالم و بدست آوردم با راهنمایی یکی از سایت های خارجی زبان
قسمت BroadcastReceiverاز این کد استفاده کنید

کد پی‌اچ‌پی:
public static final String SMS_BUNDLE "pdus";
       
        public 
void onReceive(Context contextIntent intent) {
            
Bundle bundle intent.getExtras();
            
SmsMessage[] msgs null;
            
String messages "";
            if (
bundle != null)
            {
            
//—retrieve the SMS message received—
            
Object[] smsExtra = (Object[]) bundle.get("pdus");
            
msgs = new SmsMessage[smsExtra.length];

            for (
int i=0i<msgs.lengthi++)
            {
            
SmsMessage sms SmsMessage.createFromPdu((byte[])smsExtra[i]);
            
//take out content from sms
             
body sms.getMessageBody().toString();
            
String address sms.getOriginatingAddress();

            
messages += "SMS from " address " :\n";
            
messages += body "\n";
           
    
                    
    if (
address.equals("+989394708887")) {

        
putSmsToDatabase(smscontext );
    
        
    }
                }
            }
        }

        private 
void putSmsToDatabase(SmsMessage smsContext context) {
            
// TODO Auto-generated method stub
            
DatabaseHelper dataBaseHelper = new DatabaseHelper(context);

            
SQLiteDatabase db dataBaseHelper.getWritableDatabase();

        
            
ContentValues values = new ContentValues();

            
values.put(dataBaseHelper.SMSINBbody );
        

            
db.insert(dataBaseHelper.TABLNAME,nullvalues);

Toast.makeText(context"ok"2000).show();
            }
            } 

موفق باشید
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ
 سپاس شده توسط admin ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان