使用共享首选项保存蓝牙套接字对象

时间:2018-01-31 08:41:33

标签: android

是否可以在android中使用共享首选项保存 BluetoothSocket对象。 我从这个How Android SharedPreferences save/store object获得了引用,并使用此引用保存了对象。 我的问题是我无法将对象检索为BluetoothSocket。

这是我保存的代码

void saveBluetoothDevice(String connectingDevice)
{
    SharedPreferences.Editor editor = getSharedPreferences(Prefer_Bluetooth_name, MODE_PRIVATE).edit();
    Gson gson = new Gson();
    editor.putString("name", connectingDevice);
    String json = gson.toJson(mmDevice);
    editor.putString("MyObject", json);
    //editor.putInt("idName", 12);
    editor.apply();
}`  

用于检索:

 String getBluetoothName()
{
    String name = "";
    SharedPreferences prefs = getSharedPreferences(Prefer_Bluetooth_name, MODE_PRIVATE);
    name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
    Gson gson = new Gson();
    String json = prefs.getString("MyObject", "");
    mmSocket= gson.fromJson(json, BluetoothSocket);
    return name;
}

但它不是Ok.Please帮助我。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用mmSocket= gson.fromJson(json, BluetoothSocket.class); 请输入String json的值的日志。

String getBluetoothName()
{
    String name = "";
    SharedPreferences prefs = getSharedPreferences(Prefer_Bluetooth_name, MODE_PRIVATE);
    name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
    Gson gson = new Gson();
    String json = prefs.getString("MyObject", "");
    mmSocket= gson.fromJson(json, BluetoothSocket.class);    <-- This one
    return name;
}