我的應用使用WifiInfo
類來獲取連接網絡的Wifi SSID。需要邏輯來存儲數據到原語中,並將它們與SQLite關聯起來
如果用戶想要,它將存儲在名爲WifiList的ArrayList
的某個位置上。
使用自定義名稱,在另一個ArrayList中的相同位置調用savedName。
現在,無論何時打開應用程序,它都會檢查Wifi SSID是否存在於數組列表中,並顯示來自同一位置的特定自定義名稱。
這兩個列表均通過TinyDB存儲在共享首選項中。 這就是我一直在Android中存儲數據的方式。使用sqlite數據庫似乎不適合用於這種簡單的應用程序。
所以,我現在需要的是,一種邏輯或方法,以一個自定義名稱保存多個WiFi SSID。就像當我連接到WiFi A或WiFi B時,它必須顯示'狗',WiFi C顯示'貓',E,F,G顯示'鼠標'。
如何存儲這些數據集以及我在哪裏存儲?
package combined.locky;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.IBinder;
import android.widget.Toast;
import java.util.ArrayList;
public class LockyService extends Service
{
//ANDROID VARIABLES
public Context context;
public static TinyDB tinyDB;
public static WifiManager wifiManager;
public static WifiInfo wifiInfo;
//PROGRAM VARIABLES
public static ArrayList<String> savedWifiList = new ArrayList<>(100);
public static ArrayList<String> savedContextList = new ArrayList<>(100);
@Override
public void onCreate()
{
//CRITICAL INITIALISATION
super.onCreate();
context = getApplicationContext();
tinyDB = new TinyDB(context);
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_BOOT_COMPLETED);
filter.addAction(Intent.ACTION_SCREEN_ON);
LockyReceiver receiver = new LockyReceiver();
registerReceiver(receiver, filter);
//ANDROID INITIALISATION
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
wifiInfo = wifiManager.getConnectionInfo();
//FINALLY AFTER CREATING SERVICE
Toast.makeText(context, "Locky Service Created", Toast.LENGTH_SHORT).show();
}
@Override
public void onLowMemory()
{
tinyDB.putListString("savedWifiList", LockyService.savedWifiList);
tinyDB.putListString("savedContextList", LockyService.savedContextList);
super.onLowMemory();
}
@Override
public void onDestroy()
{
tinyDB.putListString("savedWifiList", LockyService.savedWifiList);
tinyDB.putListString("savedContextList", LockyService.savedContextList);
Toast.makeText(context, "Locky Service Killed", Toast.LENGTH_SHORT).show();
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent)
{
return null;
}
}
這裏是我上面使用數組列表的示例代碼。我想將一個名稱映射到不同的已保存Wifi Wifi SSID。我不知道從哪裏開始。
你介意更新您的問題SharedPreferences的ArrayList?因爲僅僅描述你的問題很難幫助你。 – aribeiro
也許嘗試使用snappyDB保存所有內容。它的設置速度快,易於使用。 – Smashing
@aribeiro請看看,我已經添加了代碼。我需要邏輯來存儲與不同WIFI SSID相關的一個名稱。我稍後可以使用TinyDB或SnappyDB來保存它們。 –