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
   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 に答える
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 に答える
0

簡単な答え:設定変数をインスタンス化する方法を確認してください。sp.edit()を使用していたので、おそらくsp.getStringでもあるはずです。

于 2012-07-29T05:49:36.050 に答える