পর্ব 1: প্রোগ্রামযুক্তভাবে একটি WEP ওয়াইফাই কনফিগারেশন তৈরি করা
এটি বেশ সহজবোধ্য, ওয়াইফাই কনফিগারেশন ইন্টারফেসটিকে একইরূপে প্রকাশ করে। নমুনা কোডটি এখানে:
void saveWepConfig()
{
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"SSID_NAME\""; //IMP! This should be in Quotes!!
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.DISABLED;
wc.priority = 40;
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wc.wepKeys[0] = "\"aaabbb1234\""; //This is the WEP Password
wc.wepTxKeyIndex = 0;
WifiManager wifiManag = (WifiManager) this.getSystemService(WIFI_SERVICE);
boolean res1 = wifiManag.setWifiEnabled(true);
int res = wifi.addNetwork(wc);
Log.d("WifiPreference", "add Network returned " + res );
boolean es = wifi.saveConfiguration();
Log.d("WifiPreference", "saveConfiguration returned " + es );
boolean b = wifi.enableNetwork(res, true);
Log.d("WifiPreference", "enableNetwork returned " + b );
}
AndroidManLive.xML এ প্রয়োজনীয় অনুমতিগুলি অনুসরণ করা
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE">
</uses-permission>
পার্ট 2: একটি
ডব্লিউইপি ওয়াইফাই কনফিগারেশন প্রোগ্রামিয়ালি স্ট্রাইটফোর্ডে আবার পড়ুন। নমুনা কোডটি এখানে:
void readWepConfig()
{
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> item = wifi.getConfiguredNetworks();
int i = item.size();
Log.d("WifiPreference", "NO OF CONFIG " + i );
Iterator<WifiConfiguration> iter = item.iterator();
WifiConfiguration config = item.get(0);
Log.d("WifiPreference", "SSID" + config.SSID);
Log.d("WifiPreference", "PASSWORD" + config.preSharedKey);
Log.d("WifiPreference", "ALLOWED ALGORITHMS");
Log.d("WifiPreference", "LEAP" + config.allowedAuthAlgorithms.get(AuthAlgorithm.LEAP));
Log.d("WifiPreference", "OPEN" + config.allowedAuthAlgorithms.get(AuthAlgorithm.OPEN));
Log.d("WifiPreference", "SHARED" + config.allowedAuthAlgorithms.get(AuthAlgorithm.SHARED));
Log.d("WifiPreference", "GROUP CIPHERS");
Log.d("WifiPreference", "CCMP" + config.allowedGroupCiphers.get(GroupCipher.CCMP));
Log.d("WifiPreference", "TKIP" + config.allowedGroupCiphers.get(GroupCipher.TKIP));
Log.d("WifiPreference", "WEP104" + config.allowedGroupCiphers.get(GroupCipher.WEP104));
Log.d("WifiPreference", "WEP40" + config.allowedGroupCiphers.get(GroupCipher.WEP40));
Log.d("WifiPreference", "KEYMGMT");
Log.d("WifiPreference", "IEEE8021X" + config.allowedKeyManagement.get(KeyMgmt.IEEE8021X));
Log.d("WifiPreference", "NONE" + config.allowedKeyManagement.get(KeyMgmt.NONE));
Log.d("WifiPreference", "WPA_EAP" + config.allowedKeyManagement.get(KeyMgmt.WPA_EAP));
Log.d("WifiPreference", "WPA_PSK" + config.allowedKeyManagement.get(KeyMgmt.WPA_PSK));
Log.d("WifiPreference", "PairWiseCipher");
Log.d("WifiPreference", "CCMP" + config.allowedPairwiseCiphers.get(PairwiseCipher.CCMP));
Log.d("WifiPreference", "NONE" + config.allowedPairwiseCiphers.get(PairwiseCipher.NONE));
Log.d("WifiPreference", "TKIP" + config.allowedPairwiseCiphers.get(PairwiseCipher.TKIP));
Log.d("WifiPreference", "Protocols");
Log.d("WifiPreference", "RSN" + config.allowedProtocols.get(Protocol.RSN));
Log.d("WifiPreference", "WPA" + config.allowedProtocols.get(Protocol.WPA));
Log.d("WifiPreference", "WEP Key Strings");
String[] wepKeys = config.wepKeys;
Log.d("WifiPreference", "WEP KEY 0" + wepKeys[0]);
Log.d("WifiPreference", "WEP KEY 1" + wepKeys[1]);
Log.d("WifiPreference", "WEP KEY 2" + wepKeys[2]);
Log.d("WifiPreference", "WEP KEY 3" + wepKeys[3]);
}
অংশ 3: একটি EAP ওয়াইফাই কনফিগারেশন প্রোগ্রামক্রমে পড়ুন
এখন এটি জটিল। আপনি কোড যা ভ্যানিলা অ্যান্ড্রয়েড UI 'তে মাধ্যমে একটি ইএপি ওয়াইফাই কনফিগারেশন সংরক্ষণ জানতে পারেন WifiDialog.java । যথেষ্ট সহজ যথেষ্ট আমরা আমাদের অ্যাপ্লিকেশনটিতে একই কোডটি ব্যবহার করতে পারি, ভাল না! আপনি এই চেষ্টা ঘটতে আপনি বলার অপেক্ষা রাখে না চিহ্ন খুঁজে পাচ্ছি না ত্রুটি পাবেনeap
,phase
,client_cert
ইত্যাদি। সামান্য বিশদ তদন্ত আমাদেরশ্রেণীরঅভ্যন্তরে এন্টারপ্রাইজফিল্ডকে বলেএবং আমরা যে চিহ্নগুলি খুঁজে পাই না সেগুলি ধরণের। ওয়েল আমরা একটি রোড ব্লক পেয়েছি, একটি EAP কনফিগারেশন পড়ার / সংরক্ষণের জন্য আমাদের এই ক্ষেত্রগুলি প্রয়োজন তবে সেগুলিতে আমাদের কাছে প্রোগ্রামিক অ্যাক্সেস নেই! is private
WiFiConfiguration
EnterpriseField
Java Reflection API
উদ্ধার করার জন্য
আচ্ছা ওয়েল আমি জাভা বিশেষজ্ঞ নই তাই প্রতিচ্ছবি এআইপি-র বিশদ সম্পর্কে আমি জানতে চাই না এবং আপনি টিউটোরিয়ালগুলির জন্য গুগল করতে পারেন বা এখানে আরও তথ্য পেতে পারেন। এটি সংক্ষিপ্ত এবং মিষ্টি রাখতে রিফ্লেকশন এপিআই আপনাকে রানটাইম সময়ে ক্লাস, ইন্টারফেস, ক্ষেত্র এবং পদ্ধতিগুলি পরীক্ষা করার সময় ক্লাসের নাম, পদ্ধতি ইত্যাদির সংকলন সময়ে পরীক্ষা করার অনুমতি দেয়। এছাড়া নতুন বস্তু instantiate, পদ্ধতি ডাকা এবং reflection.And ব্যবহার পেতে / সেট ক্ষেত্র মান সম্ভব, গুরুত্বপূর্ণভাবে প্রতিফলন সাহায্য করতে পারেন একটি ক্লাসের ভিতরে ব্যক্তিগত ডেটাতে সদস্যদের অ্যাক্সেস আচ্ছা এই কি আমরা আমরা না প্রয়োজন আছে কি? :)
আসুন এখনই কোড উদাহরণটি যাচাই করুন যা প্রতিফলন এপি ব্যবহার করে কীভাবে EAP ওয়াইফাই কনফিগারেশন পড়তে হয় তা দেখায়। একটি বোনাস হিসাবে স্নিপেট কনফিগারেশন কোনও ফাইলটিতে লগ করে এটি এসডি কার্ডে সংরক্ষণ করবে .... বেশ চটকদার ..eh;) প্রতিচ্ছবি এপিআই এর সামান্য পর্যালোচনা এবং আমি নিশ্চিত যে নীচের কোডটি উপলব্ধি করা সহজ।
private static final String INT_PRIVATE_KEY = "private_key";
private static final String INT_PHASE2 = "phase2";
private static final String INT_PASSWORD = "password";
private static final String INT_IDENTITY = "identity";
private static final String INT_EAP = "eap";
private static final String INT_CLIENT_CERT = "client_cert";
private static final String INT_CA_CERT = "ca_cert";
private static final String INT_ANONYMOUS_IDENTITY = "anonymous_identity";
final String INT_ENTERPRISEFIELD_NAME = "android.net.wifi.WifiConfiguration$EnterpriseField";
এই readEapConfig()
ফাংশন কল করার আগে এসডি কার্ডে একটি লগফিল তৈরি করার কোড ।
BufferedWriter out = null;
try
{
File root = Environment.getExternalStorageDirectory();
Toast toast = Toast.makeText(this, "SD CARD mounted and writable? " + root.canWrite(), 5000);
toast.show();
if (root.canWrite())
{
File gpxfile = new File(root, "ReadConfigLog.txt");
FileWriter gpxwriter = new FileWriter(gpxfile);
out = new BufferedWriter(gpxwriter);
out.write("Hello world");
//out.close();
}
} catch (IOException e)
{
Toast toast = Toast.makeText(this, "Problem reading SD CARD", 3000);
Toast toast2 = Toast.makeText(this, "Please take logs using Logcat", 5000);
Log.e("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "Could not write file " + e.getMessage());
}
এখন readEapConfig()
নিজেই ফাংশন:
void readEapConfig(BufferedWriter out)
{
/*Get the WifiService */
WifiManager wifi = (WifiManager)getSystemService(WIFI_SERVICE);
/*Get All WIfi configurations*/
List<WifiConfiguration> configList = wifi.getConfiguredNetworks();
/*Now we need to search appropriate configuration i.e. with name SSID_Name*/
for(int i = 0;i<configList.size();i++)
{
if(configList.get(i).SSID.contentEquals("\"SSID_NAME\""))
{
/*We found the appropriate config now read all config details*/
Iterator<WifiConfiguration> iter = configList.iterator();
WifiConfiguration config = configList.get(i);
/*I dont think these fields have anything to do with EAP config but still will
* print these to be on safe side*/
try {
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[SSID]" + config.SSID);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[SSID]" + config.SSID);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[BSSID]" + config.BSSID);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" +"[BSSID]" + config.BSSID);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[HIDDEN SSID]" + config.hiddenSSID);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[HIDDEN SSID]" + config.hiddenSSID);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[PASSWORD]" + config.preSharedKey);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>"+ "[PASSWORD]" + config.preSharedKey);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[ALLOWED ALGORITHMS]");
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>"+ "[ALLOWED ALGORITHMS]");
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[LEAP]" + config.allowedAuthAlgorithms.get(AuthAlgorithm.LEAP));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[LEAP]" + config.allowedAuthAlgorithms.get(AuthAlgorithm.LEAP));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[OPEN]" + config.allowedAuthAlgorithms.get(AuthAlgorithm.OPEN));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[OPEN]" + config.allowedAuthAlgorithms.get(AuthAlgorithm.OPEN));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[SHARED]" + config.allowedAuthAlgorithms.get(AuthAlgorithm.SHARED));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[SHARED]" + config.allowedAuthAlgorithms.get(AuthAlgorithm.SHARED));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[GROUP CIPHERS]");
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[GROUP CIPHERS]");
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[CCMP]" + config.allowedGroupCiphers.get(GroupCipher.CCMP));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[CCMP]" + config.allowedGroupCiphers.get(GroupCipher.CCMP));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" , "[TKIP]" + config.allowedGroupCiphers.get(GroupCipher.TKIP));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>"+ "[TKIP]" + config.allowedGroupCiphers.get(GroupCipher.TKIP));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WEP104]" + config.allowedGroupCiphers.get(GroupCipher.WEP104));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WEP104]" + config.allowedGroupCiphers.get(GroupCipher.WEP104));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WEP40]" + config.allowedGroupCiphers.get(GroupCipher.WEP40));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WEP40]" + config.allowedGroupCiphers.get(GroupCipher.WEP40));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[KEYMGMT]");
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[KEYMGMT]");
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[IEEE8021X]" + config.allowedKeyManagement.get(KeyMgmt.IEEE8021X));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>"+ "[IEEE8021X]" + config.allowedKeyManagement.get(KeyMgmt.IEEE8021X));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[NONE]" + config.allowedKeyManagement.get(KeyMgmt.NONE));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[NONE]" + config.allowedKeyManagement.get(KeyMgmt.NONE));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WPA_EAP]" + config.allowedKeyManagement.get(KeyMgmt.WPA_EAP));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WPA_EAP]" + config.allowedKeyManagement.get(KeyMgmt.WPA_EAP));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WPA_PSK]" + config.allowedKeyManagement.get(KeyMgmt.WPA_PSK));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WPA_PSK]" + config.allowedKeyManagement.get(KeyMgmt.WPA_PSK));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[PairWiseCipher]");
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[PairWiseCipher]");
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[CCMP]" + config.allowedPairwiseCiphers.get(PairwiseCipher.CCMP));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[CCMP]" + config.allowedPairwiseCiphers.get(PairwiseCipher.CCMP));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[NONE]" + config.allowedPairwiseCiphers.get(PairwiseCipher.NONE));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[NONE]" + config.allowedPairwiseCiphers.get(PairwiseCipher.NONE));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[TKIP]" + config.allowedPairwiseCiphers.get(PairwiseCipher.TKIP));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[TKIP]" + config.allowedPairwiseCiphers.get(PairwiseCipher.TKIP));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[Protocols]");
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[Protocols]");
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[RSN]" + config.allowedProtocols.get(Protocol.RSN));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[RSN]" + config.allowedProtocols.get(Protocol.RSN));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WPA]" + config.allowedProtocols.get(Protocol.WPA));
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WPA]" + config.allowedProtocols.get(Protocol.WPA));
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[PRE_SHARED_KEY]" + config.preSharedKey);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[PRE_SHARED_KEY]" + config.preSharedKey);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WEP Key Strings]");
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WEP Key Strings]");
String[] wepKeys = config.wepKeys;
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WEP KEY 0]" + wepKeys[0]);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WEP KEY 0]" + wepKeys[0]);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WEP KEY 1]" + wepKeys[1]);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WEP KEY 1]" + wepKeys[1]);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WEP KEY 2]" + wepKeys[2]);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WEP KEY 2]" + wepKeys[2]);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[WEP KEY 3]" + wepKeys[3]);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[WEP KEY 3]" + wepKeys[3]);
}
catch(IOException e)
{
Toast toast1 = Toast.makeText(this, "Failed to write Logs to ReadConfigLog.txt", 3000);
Toast toast2 = Toast.makeText(this, "Please take logs using Logcat", 5000);
Log.e("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "Could not write to ReadConfigLog.txt" + e.getMessage());
}
/*reflection magic*/
/*These are the fields we are really interested in*/
try
{
// Let the magic start
Class[] wcClasses = WifiConfiguration.class.getClasses();
// null for overzealous java compiler
Class wcEnterpriseField = null;
for (Class wcClass : wcClasses)
if (wcClass.getName().equals(INT_ENTERPRISEFIELD_NAME))
{
wcEnterpriseField = wcClass;
break;
}
boolean noEnterpriseFieldType = false;
if(wcEnterpriseField == null)
noEnterpriseFieldType = true; // Cupcake/Donut access enterprise settings directly
Field wcefAnonymousId = null, wcefCaCert = null, wcefClientCert = null, wcefEap = null, wcefIdentity = null, wcefPassword = null, wcefPhase2 = null, wcefPrivateKey = null;
Field[] wcefFields = WifiConfiguration.class.getFields();
// Dispatching Field vars
for (Field wcefField : wcefFields)
{
if (wcefField.getName().trim().equals(INT_ANONYMOUS_IDENTITY))
wcefAnonymousId = wcefField;
else if (wcefField.getName().trim().equals(INT_CA_CERT))
wcefCaCert = wcefField;
else if (wcefField.getName().trim().equals(INT_CLIENT_CERT))
wcefClientCert = wcefField;
else if (wcefField.getName().trim().equals(INT_EAP))
wcefEap = wcefField;
else if (wcefField.getName().trim().equals(INT_IDENTITY))
wcefIdentity = wcefField;
else if (wcefField.getName().trim().equals(INT_PASSWORD))
wcefPassword = wcefField;
else if (wcefField.getName().trim().equals(INT_PHASE2))
wcefPhase2 = wcefField;
else if (wcefField.getName().trim().equals(INT_PRIVATE_KEY))
wcefPrivateKey = wcefField;
}
Method wcefValue = null;
if(!noEnterpriseFieldType)
{
for(Method m: wcEnterpriseField.getMethods())
//System.out.println(m.getName());
if(m.getName().trim().equals("value")){
wcefValue = m;
break;
}
}
/*EAP Method*/
String result = null;
Object obj = null;
if(!noEnterpriseFieldType)
{
obj = wcefValue.invoke(wcefEap.get(config), null);
String retval = (String)obj;
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP METHOD]" + retval);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP METHOD]" + retval);
}
else
{
obj = wcefEap.get(config);
String retval = (String)obj;
}
/*phase 2*/
if(!noEnterpriseFieldType)
{
result = (String) wcefValue.invoke(wcefPhase2.get(config), null);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP PHASE 2 AUTHENTICATION]" + result);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP PHASE 2 AUTHENTICATION]" + result);
}
else
{
result = (String) wcefPhase2.get(config);
}
/*Anonymous Identity*/
if(!noEnterpriseFieldType)
{
result = (String) wcefValue.invoke(wcefAnonymousId.get(config),null);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP ANONYMOUS IDENTITY]" + result);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP ANONYMOUS IDENTITY]" + result);
}
else
{
result = (String) wcefAnonymousId.get(config);
}
/*CA certificate*/
if(!noEnterpriseFieldType)
{
result = (String) wcefValue.invoke(wcefCaCert.get(config), null);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP CA CERTIFICATE]" + result);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP CA CERTIFICATE]" + result);
}
else
{
result = (String)wcefCaCert.get(config);
}
/*private key*/
if(!noEnterpriseFieldType)
{
result = (String) wcefValue.invoke(wcefPrivateKey.get(config),null);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP PRIVATE KEY]" + result);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP PRIVATE KEY]" + result);
}
else
{
result = (String)wcefPrivateKey.get(config);
}
/*Identity*/
if(!noEnterpriseFieldType)
{
result = (String) wcefValue.invoke(wcefIdentity.get(config), null);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP IDENTITY]" + result);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP IDENTITY]" + result);
}
else
{
result = (String)wcefIdentity.get(config);
}
/*Password*/
if(!noEnterpriseFieldType)
{
result = (String) wcefValue.invoke(wcefPassword.get(config), null);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP PASSWORD]" + result);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP PASSWORD]" + result);
}
else
{
result = (String)wcefPassword.get(config);
}
/*client certificate*/
if(!noEnterpriseFieldType)
{
result = (String) wcefValue.invoke(wcefClientCert.get(config), null);
Log.d("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "[EAP CLIENT CERT]" + result);
out.write("<<<<<<<<<<WifiPreference>>>>>>>>>>>>" + "[EAP CLIENT CERT]" + result);
Toast toast1 = Toast.makeText(this, "All config data logged to ReadConfigLog.txt", 3000);
Toast toast2 = Toast.makeText(this, "Extract ReadConfigLog.txt from SD CARD", 5000);
}
else
{
result = (String)wcefClientCert.get(config);
}
out.close();
}
catch(IOException e)
{
Toast toast1 = Toast.makeText(this, "Failed to write Logs to ReadConfigLog.txt", 3000);
Toast toast2 = Toast.makeText(this, "Please take logs using Logcat", 5000);
Log.e("<<<<<<<<<<WifiPreference>>>>>>>>>>>>", "Could not write to ReadConfigLog.txt" + e.getMessage());
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}