دوست عزیز
وقتی کد مربوط به دیتابیس رو داخل یک Broadcast Reciever وارد میکنم ایراد میگیره و لی داخل یک اکتیویتی میزنم مشکل نداره:
مثلا کد زیر رو وارد کلاس زیر کردم:
حالا اگه من خط اول کد بالا یعنی:
رو تبدیل به :
کنم دیگه ایراد نمیگیره ولی بجاش دیگه سرویس نیست که پیام دریافت کنه.
ممنون.....
وقتی کد مربوط به دیتابیس رو داخل یک Broadcast Reciever وارد میکنم ایراد میگیره و لی داخل یک اکتیویتی میزنم مشکل نداره:
مثلا کد زیر رو وارد کلاس زیر کردم:
کد پیاچپی:
String DATABASE_NAME = "KELIDESTAN.db";
String TABLE_NAME = "MY_TABLE";
try{
SQLiteDatabase mydb = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE_NAME +" (ID INTEGER PRIMARY KEY, NAME TEXT, CITY TEXT);");
mydb.close();
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Error in creating table", Toast.LENGTH_LONG).show();
}
کد پیاچپی:
public class BroadcastReceiver extends BroadcastReceiver {
String DATABASE_NAME = "KELIDESTAN.db";
String TABLE_NAME = "MY_TABLE";
Context c;
final SmsManager sms = SmsManager.getDefault();
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]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
try{
SQLiteDatabase mydb = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE_NAME +" (ID INTEGER PRIMARY KEY, NAME TEXT, CITYTEXT);");
mydb.close();
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Error in creating table", Toast.LENGTH_LONG).show();
}
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
if (senderNum.equals("5556")) {abortBroadcast();}
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration);
toast.show();
}
}
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
}
حالا اگه من خط اول کد بالا یعنی:
کد پیاچپی:
[i]public class BroadcastReceiver extends BroadcastReceiver[/i]
رو تبدیل به :
کد پیاچپی:
[i]public class BroadcastReceiver extends Activity[/i]
کنم دیگه ایراد نمیگیره ولی بجاش دیگه سرویس نیست که پیام دریافت کنه.
ممنون.....