在一个BroadcastReceiver中,我接收到一个外拨电话的号码。
我想将这个电话号码与我在SQL数据库中存储的号码进行比较。
可悲的是,在BroadcastReceiver中我无法访问我的数据库。在其他Activity中它可以正常工作。
以下是BroadcastReceiver的代码:
我想将这个电话号码与我在SQL数据库中存储的号码进行比较。
可悲的是,在BroadcastReceiver中我无法访问我的数据库。在其他Activity中它可以正常工作。
以下是BroadcastReceiver的代码:
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
//[ getting "string phonenumber" (works)]
mySQLiteAdapter = new SQLiteAdapter(context);
mySQLiteAdapter.openToRead();
sqLiteDatabase = sqLiteHelper.getReadableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM MYDATABASE_TABLE =" + potatos, null);
if(cursor.getCount() > 0) {
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
cursor.moveToNext();
}
}
}
}
SQLiteAdapter
中的代码
public SQLiteAdapter openToRead() throws android.database.SQLException {
sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getReadableDatabase();
return this;
}
onReceive
函数或者至少更多你正在做的事情?你发布了openToRead()
函数,但是你在代码中没有使用它。 - KirkopenToRead()
函数是否在你的OutgoingCallReceiver
中,并且是在那里进行初始化的? - Kirk