package com.oc.mobilsecurity.data; import java.util.ArrayList; import java.util.Arrays; import android.content.Context; import com.oc.mobilsecurity.check.FetchData; import com.oc.mobilsecurity.datamanager.Encryption; import com.oc.mobilsecurity.datamanager.HardwareDao; import com.oc.mobilsecurity.datamanager.SoftwareDao; import android.net.wifi.WifiManager; import android.provider.Settings.Secure; import android.telephony.*; import android.util.Log; public class MoblileInformation { private HardwareDao hardwareDao; private SoftwareDao softwareDao; private Context context; private String USER_SOFT = null; // �����Ϣ private String USER_HARD = null; // Ӳ����Ϣ private String USER_UKEY = null; // ����֤�� private String DEVICENAME; private ArrayList<String> mobileNames; private ArrayList<String> PCNames; private static MoblileInformation instance; private MoblileInformation() { mobileNames = new ArrayList<String>(); PCNames = new ArrayList<String>(); } public void initMobileInfo() { getUHardInfo(); getUSoftInfo(); } public static MoblileInformation getInstance() { if (instance == null) { instance = new MoblileInformation(); } return instance; } public void setContext(Context con) { if (con == null) { Log.v("TAG", "Mob NULL"); } context = con; } public String getDeviceName() { return DEVICENAME; } public void getUHardInfo() { String IMEI = ((TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); String ANDROIDID = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID); String MODEL = android.os.Build.MODEL; String MAC = ((WifiManager) context .getSystemService(Context.WIFI_SERVICE)).getConnectionInfo() .getMacAddress(); String CPU = FetchData.fetch_cpu_info(); // String info = IMEI + ANDROIDID + MODEL + MAC + CPU; String info = IMEI + ANDROIDID + MODEL + MAC; DEVICENAME = MODEL; USER_HARD = Encryption.getMD5(info); hardwareDao = new HardwareDao(context); try { hardwareDao.save(USER_HARD); } catch (Exception e) { e.printStackTrace(); } } public void getUSoftInfo() { int ANDROIDVER = android.os.Build.VERSION.SDK_INT; String VER = android.os.Build.VERSION.RELEASE; String KERNEL = FetchData.fetch_kernel_version(); String BASEBAND = FetchData.fetch_baseband_version(); String info = ANDROIDVER + VER + KERNEL + BASEBAND; USER_SOFT = Encryption.getMD5(info); softwareDao = new SoftwareDao(context); try { softwareDao.save(USER_SOFT); } catch (Exception e) { e.printStackTrace(); } } public void delete() { instance = null; } public void setUSoft(String usoft) { this.USER_SOFT = usoft; } public void setUHard(String uhard) { this.USER_HARD = uhard; } public void setUkey(String ukey) { this.USER_UKEY = ukey; } public String getUSoft() { return USER_SOFT; } public String getUHard() { return USER_HARD; } public String getUkey() { return USER_UKEY; } public void setMobileNames(String[] mob) { mobileNames = (ArrayList<String>) Arrays.asList(mob); } public void setPCNames(String[] pc) { PCNames = (ArrayList<String>) Arrays.asList(pc); } public void addMobile(String mob) { mobileNames.add(mob); } public void addPC(String pc) { PCNames.add(pc); } public void delMobile(String mob) { mobileNames.remove(mob); } public void delPC(String pc) { PCNames.remove(pc); } public ArrayList<String> getMobileNamesList() { return mobileNames; } public ArrayList<String> getPCNamesList() { return PCNames; } public String[] getMobileNames() { String[] array = new String[mobileNames.size()]; for (int i = 0; i < mobileNames.size(); i++) { array[i] = mobileNames.get(i); } return array; } public String[] getPCNames() { String[] array = new String[PCNames.size()]; for (int i = 0; i < PCNames.size(); i++) { array[i] = PCNames.get(i); } return array; } public int getDeviceCount() { return mobileNames.size() + PCNames.size(); } }