2012-07-29 68 views
0

我试图将SIM序列号存储为SharedPreferences中的值,但是当我做Toast以测试它为空的值时。Toast用于检索SharedPreferences返回空值

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(); 

回答

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不是st或。

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; 
    } 

的序列号将被存储在一个XML,你可以在/数据/数据/ YOUR_APP/shared_prefs发现/

0

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