从SIM卡读取/写入Android

时间:2011-07-22 03:49:27

标签: android android-2.2-froyo sim-card

我一直在尝试从SIM卡上读/写,但仍然没有运气。

到目前为止,这是我的代码:

    //read from sim
public String adding() {
        Uri simUri = Uri.parse("content://icc/adn/"); 
        Cursor cursorSim = this.getContentResolver().query(simUri, null, null,null, null);
        String b = "";

        while (cursorSim.moveToNext()) {           

      b+=   (cursorSim.getString(cursorSim.getColumnIndex("name")));
        b += "\n" + (cursorSim.getString(cursorSim.getColumnIndex("_id")));      
       b+=   "\n" + (cursorSim.getString(cursorSim.getColumnIndex("number")));
        }


    return b;


}

//写入sim

public void testing4() {
           ContentValues values = new ContentValues();

           values.put( "tag", "test" );

           values.put( "number", "1234" );

           getContentResolver().insert( Uri.parse("content://icc/adn/"); , values

    );  

    }

如果您对此有所了解,请告诉我。

由于

2 个答案:

答案 0 :(得分:2)

写给usim时有一些拼写错误。

getContentResolver().insert(Uri.parse("content://icc/adn"), values);

此外,还应在AndroidManifest中添加权限。

(旁边的问题) 在simsalabim的源代码中,我不知道类变量“Contact”的含义。 我找不到可以导入的包。在日食中,“联系”行中存在错误。

源代码表示文件content://icc/adn适用于1.6以上的Android版本,适用于1.5 content://sim/adn

(副成果) 我发现“数字”字段的大小可以超过64个字符。在读取过程中,可以检索正确的值。 但真正的手机屏幕无法显示完整的字符。

答案 1 :(得分:0)

您是否已将权限添加到AndroidManifest

你应该:

<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>

您还可以从simsalabim的源代码中获得一些想法。