ورود

View Full Version : دریافت پیامک فقط از شماره های ذخیره شده در داخل پایگاه داده در برنامه نویسی اندروید



smathematics
دوشنبه 30 اسفند 1395, 17:21 عصر
با سلام و عرض ادب.من در برنامه نویسی و در اندروید تازه کار هستم و یک سوال داشتم.

من در برنامه ام بخشی دارم که کاربر ، توسط این بخش در داخل پایگاه داده شماره ذخیره می کند.

مانند تصویر زیر:

144724

من می خوام وقتی اس ام اس دریافت می کنم ، وقتی شماره اس ام اس دریافتی برابر با این شماره ها بود آنها را گرفته و لیست کنم.

چه طور می شه این کارو انجام داد.

کلاس دیتابیس من :


public class DatabaseHelper1 extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "PhoneNumber.db";
public static final String TABLE_NAME = "number_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NUMBER";



public DatabaseHelper1(Context context) {
super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL("Create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT,NUMBER INTEGER)");


}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
onCreate(db);
}
public boolean insertData(String number){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2,number);
long result = db.insert(TABLE_NAME, null, contentValues);

if(result == -1)
return false;
else
return true;
}
}

کلاس دریافت کننده پیامک من :


[JAVA]public class ReceiveMessage extends BroadcastReceiver {
final SmsManager mysms = SmsManager.getDefault();
DatabaseHelper1 db;
@Override
public void onReceive(Context context, Intent intent) {
db=new DatabaseHelper1(context);
Bundle mybundel = intent.getExtras();
try {

if (mybundel != null) {
final Object[] messageContent = (Object[]) mybundel.get("pdus");
String smsMessageStr = "";
for (int i = 0; i < messageContent.length; i++) {

SmsMessage mynewsms = SmsMessage.createFromPdu((byte[]) messageContent);
NewMessageNotification nome = new NewMessageNotification();
nome.[I]notify(context, mynewsms.getDisplayOriginatingAddress(), mynewsms.getDisplayMessageBody(), i);
i++;

String smsBody = mynewsms.getMessageBody().toString();
String address = mynewsms.getOriginatingAddress();



smsMessageStr += "ارسال کننده: " + address + "\n";
smsMessageStr += smsBody + "\n";


Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show();

//this will update the UI with message
SmsInbox inst = SmsInbox.instance();
inst.updateList(smsMessageStr);
}
}

}
catch (Exception ex){

}
}


ممنون از پاسخگوییتون

یه سوال دیگه ام داشتم.من دارم روی اندروید 23 برنامه میسازم چه جوری میشه sdk Version رو تغییر داد.مرسی