安卓/数据库。知道为啥电话号码中的第一个字符“+”会消失吗?

Posted

技术标签:

【中文标题】安卓/数据库。知道为啥电话号码中的第一个字符“+”会消失吗?【英文标题】:Android/Database. Any idea why disappears from phone number the first character, the "+"?安卓/数据库。知道为什么电话号码中的第一个字符“+”会消失吗? 【发布时间】:2014-03-12 13:13:39 【问题描述】:

我使用 Log,当我得到联系人号码并且一切正常时,直到我从数据库中读取它们并放入列表中,然后我从数字中松开“+”字符。

public void getNumbers(String box) 
    Uri uri = Uri.parse("content://sms/" + box);
    Cursor c = getContentResolver().query(uri, null, null, null, null);
    startManagingCursor(c);

    // Read the sms data and store it in the list
    if (c.moveToFirst()) 
        for (int i = 0; i < c.getCount(); i++) 
            SMSData sms = new SMSData();

sms.setNumber(c.getString(c.getColumnIndexOrThrow("address"))
                    .toString());

            String nr = sms.getNumber();
            Log.d("I got this:", nr);

            db.getSMSDataBySearch(nr);

            c.moveToNext();
        
    
    c.close();

以及 SQLite 代码:

SQLiteDatabase db = this.getWritableDatabase(); 光标 cursor = db.rawQuery("INSERT INTO version3 (number) SELECT "+value+" WHERE NOT EXISTS" + "(SELECT 1 FROM version3 WHERE number = "+value+")", null);

【问题讨论】:

【参考方案1】:

SMS 内容提供程序不存储格式,只存储数字数据。

如果你想格式化它,有工具或者你可以构建它:

Java phone number format API

【讨论】:

但是在日志中出现了“+”。 我不知道你的数据库是如何设置的——但 SQLite 可能不在乎你是否有“+123456”作为数字,它只会删除“+”。那么您的数据库是否将其存储为数字? 它像字符串一样存储。如果我使用另一种方法在数据库中写入,那就可以了。但粘贴代码不会。

以上是关于安卓/数据库。知道为啥电话号码中的第一个字符“+”会消失吗?的主要内容,如果未能解决你的问题,请参考以下文章

两个输入中的第一个字符不可选择/不可编辑,必须是 09

提取字符串中的第一句话

知道为啥这个函数正在写入/更新表中的第一个单元格而不是 PFQueryTableViewController 中选定的单元格吗?

为啥我不能删除字符串的数字字符?

java中如何提取一个字符串中的电话号码?

为啥我的安卓模拟器键盘是汉字模式?