कृपया कोई समस्या का पता लगाने में मेरी मदद करें..मैं ब्लूटूथडिवाइस ऑब्जेक्ट को SharedPrefrences में संग्रहीत करना चाहता हूं ताकि अगली बार जब मैं ऐप खोलूं तो फिर से पारिंग डिवाइस का चयन करने की आवश्यकता न हो। इसके लिए मुझे करना होगा इस ब्लूटूथडिवाइस ऑब्जेक्ट को स्ट्रिंग वैरिएबल में कनवर्ट करें और फिर इसे SharedPrefrence में स्टोर करें जिसके लिए मैंने इसका उपयोग किया है
Gson gson = new Gson();
String json = gson.toJson(selectedDevice,BluetoothDevice.class) ;
जहां चयनितडिवाइस ब्लूटूथडिवाइस वर्ग का एक ऑब्जेक्ट है। लेकिन कोड चलाने के बाद मुझे जोंस वैरिएबल में {} ब्रेसिज़ मिला। क्या किसी को अंदाजा हो सकता है कि ऐसा क्यों हो रहा है।
2 जवाब
android.bluetooth.BluetoothDevice
में लगभग सभी गुण static final
हैं। तो, ये गुण एक उदाहरण पर निर्भर नहीं हैं।
एक address
गुण उपलब्ध है और आवृत्ति चर पर निर्भर करता है। आप इस address
संपत्ति को getAddress()
का उपयोग करके अपनी साझा-प्राथमिकताओं में सहेज सकते हैं।
यदि ब्लूटूथ सक्षम है, तो आप getName()
के साथ डिवाइस का नाम भी प्राप्त कर सकते हैं।
तो, मेरा सुझाव है कि आप अपनी साझा-वरीयताओं में कुछ इस तरह से सहेज लें;
class BluetoothDeviceInformation {
String address;
String name;
@RequiresPermission(Manifest.permission.BLUETOOTH)
public BluetoothDeviceInformation (
BluetoothDevice device
) {
this.address = device.getAddress();
this.name = device.getName();
}
}
आप इस उदाहरण का उपयोग करके बना सकते हैं:
BluetoothDeviceInformation deviceInformation =
new BluetoothDeviceInformation(selectedBluetoothDevice);
getType()
, getAlias()
आदि जैसी अन्य विधियां भी हैं। यदि आपको उनकी जानकारी चाहिए, तो बस उन्हें अपनी BluetoothDeviceInformation
कक्षा में जोड़ें।
मान लें कि आप https का जिक्र कर रहे हैं: //android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothDevice.java, इसमें स्थिर फ़ील्ड हैं लेकिन,
जावा सीरियलाइजेशन केवल ऑब्जेक्ट के गैर-स्थैतिक और गैर-क्षणिक क्षेत्रों को क्रमबद्ध करता है
लेकिन अगर आपको वास्तव में इसकी आवश्यकता है तो आप कोशिश कर सकते हैं:
BluetoothDevice selectedDevice = new BluetoothDevice();
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.excludeFieldsWithModifiers(java.lang.reflect.Modifier.TRANSIENT);
Gson gson = gsonBuilder.create();
String json = gson.toJson(selectedDevice, BluetoothDevice.class);
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।