2016-04-30 3 views
0

Я хочу сравнить входящие sms-номера с сохраненным номером базы данных. если они такие же, то показывают тост. Он отлично работает для простых чисел вроде 9 или любых других, но не с оператором +.Строка, начинающаяся с оператора +, не совпадает с базой данных Значение строки

Когда мы получили сообщение от числа, оно состоит из кода страны, например, для Пакистана + 92XXXXXXXXXX. Я сохранил его в базе данных, но когда сообщение получено с тем же номером, оно не совпадает.

Я проверил эмулятор, он отлично работает для простого номера, такого как сообщение от 9 и т. Д., Но не с оператором +. похитить.

Ошибка обнаружено Вход: индекса 0 запрошенные с размером 0

Моей базы данных таб:

// Create statement for block_list table 
    public static final String CREATE_TABLE_BLOCK_LIST = "CREATE TABLE " + TABLE_BLOCK_LIST 
      + "(" + ID_BLOCK_LIST + " INTEGER PRIMARY KEY AUTOINCREMENT DEFAULT 0," 
      + ORIGINATING_ADDRESS_BLOCKlIST + " TEXT," 
      + TIME_BLOCK_LIST + " TEXT)"; 

сравнение заявления:

// Select all Blocked Numbers 
    public Cursor compareToBlockList(String originatingAddress){ 
     Cursor cursor = null; 
     try { 
      SQLiteDatabase db = this.getWritableDatabase(); 
      cursor = db.rawQuery("SELECT " + ORIGINATING_ADDRESS_BLOCKlIST + " FROM " + TABLE_BLOCK_LIST 
        + " WHERE " + ORIGINATING_ADDRESS_BLOCKlIST + "=" + originatingAddress, null); 
     } catch (Exception e){ 
      Log.d("compare to Block list", " is" + e.getMessage()); 
     } 
     return cursor; 
    } 

вызова функции:

Cursor cursor = dbManagement.compareToBlockList(originatingAddress); 
         cursor.moveToFirst(); 
         String number = cursor.getString(cursor.getColumnIndex(dbManagement.ORIGINATING_ADDRESS_BLOCKlIST)); 

         Toast.makeText(context, "found", Toast.LENGTH_LONG).show(); 

значение базы данных:

database

Ошибка обнаружена Вход: индекс 0 запрошенный с размером 0

+0

не полный, я использовал эмулятор для отправьте сообщение из +92, которое сохраняется в базе данных. Я также пробовал с полным номером, но те же ошибки происходят –

+0

конкретный номер, который находится в базе данных. –

+0

картинка в моем вопросе показывает базу данных \ –

ответ

1

пытаются изменить к cursor = db.rawQuery("SELECT " + ORIGINATING_ADDRESS_BLOCKlIST + " FROM " + TABLE_BLOCK_LIST + " WHERE " + ORIGINATING_ADDRESS_BLOCKlIST + "= '" + originatingAddress + "'", null);

(окруженный апостроф)

Смежные вопросы