0

我正在尝试将 SIM 序列号作为值存储到 SharedPreferences 中,但是当我执行 Toast 来测试该值时,它是空的。

    TelephonyManager tMgr=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    String ss = tMgr.getSimSerialNumber();

    // Writing data to SharedPreferences
    Editor editor = sp.edit();
    editor.putString("serial", ss);
    editor.commit();

    String value = settings.getString("serial", "");
    Toast.makeText(this, value, Toast.LENGTH_LONG).show();  
4

3 回答 3

1
  • 存储序列号:

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString("serial", ss);
    editor.commit();
    
  • 检索序列:

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    String value = prefs.getString("serial", "000000000000");
    

000000000000如果 sharedPreferences 未存储,将返回给您的默认值在哪里。

于 2012-07-29T01:49:50.283 回答
1
   public void saveSerial(String serial){
      SharedPreferences prefs = getSharedPreferences("SIMSerial",Context.MODE_PRIVATE);
      SharedPreferences.Editor editor = prefs.edit();
      editor.putString("Serial", serial);
      editor.commit();
     }
    public String getSerial(){
      String getSIMSerial;
      SharedPreferences prefs = getSharedPreferences("SIMSerial",Context.MODE_PRIVATE);
      getSIMSerial = prefs.getString("Serial", "Default value");
        return getSIMSerial;
     }

序列号将存储在您可以在 /data/data/YOUR_APP/shared_prefs/ 找到的 xml 中

于 2012-07-29T05:37:10.017 回答
0

简短回答:检查您如何实例化设置变量。您使用的是 sp.edit(),所以它也应该是 sp.getString。

于 2012-07-29T05:49:36.050 回答