In my application i am using "apn" for GPRS connection display. I code a spinner in which i get the Telenor GPRS, Telenor MMS and Telenor WAP. **I want to add Wi-Fi option in this spinner. and when i select Wi-Fi option device start sensing Wi-Fi.
Q: How can i add option of Wi-Fi in my spinner?? ** This is my Code
Spinner GPRS;
String [] name_of_GPRS__available;
int [] apn_id; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.configuration);
EnumerateAPNs();
/* this is a android enviroment in which you can develop an android application in which you
* share all your basic necessities of thrkife bghhr4y2ghrrr*/
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
GPRS = (Spinner)findViewById(R.id.GPRS);
ArrayAdapter<?> spinner_array = new ArrayAdapter<Object>(this,android.R.layout.simple_dropdown_item_1line,name_of_GPRS__available);
spinner_array.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
Editor prefsEditor = prefs.edit();
prefsEditor.putString("Object", name_of_GPRS__available.toString());
prefsEditor.commit();
GPRS.setAdapter(spinner_array);
//GPRS.setOnItemSelectedListener(MyOnItemSelectedListener());
GPRS.setOnItemSelectedListener(new MyOnItemSelectedListener());`
GPRS.setAdapter(spinner_array);
//GPRS.setOnItemSelectedListener(MyOnItemSelectedListener());
GPRS.setOnItemSelectedListener(new MyOnItemSelectedListener());
public void onItemSelected(AdapterView<?> parent, View view,
final int position, long id) {
// An item was selected. You can retrieve the selected item using
// parent.getItemAtPosition(position)
SetDefaultAPN(apn_id[position]);
Toast.makeText(parent.getContext(), "ETracking System Selects " +
parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
public boolean SetDefaultAPN(int id)
{
boolean res = false;
ContentResolver resolver = Configuration.this.getContentResolver();
ContentValues values = new ContentValues();
values.put("apn_id", id);
try
{
resolver.update(Uri.parse("content://telephony/carriers/preferapn"), values, null, null);
Cursor c = resolver.query(
Uri.parse("content://telephony/carriers/preferapn"),
null,
"_id="+id,
null,
null);
if(c != null)
{
res = true;
c.close();
}
}
catch (SQLException e)
{
//Log.d("TAG", e.getMessage());
}
return res;
}
/*
* Enumerate all APN data
*/
private void EnumerateAPNs()
{
Cursor c = this.getContentResolver().query(
Uri.parse("content://telephony/carriers/current"), null, null, null, null);
if (c != null)
{
//String s = "All APNs:\n";
//Log.d("TAG", s);
try
{
printAllData(c); //Print the entire result set
}
catch(SQLException e)
{
Toast.makeText(Configuration.this, "No Network Connection Available", Toast.LENGTH_LONG).show();
}
c.close();
}
}
/*
* Print all data records associated with Cursor c.
* Return a string that contains all record data.
* For some weird reason, Android SDK Log class cannot print very long string message.
* Thus we have to log record-by-record.
*/
private void printAllData(Cursor c)
{
//if(c == null) return null;
if(c.moveToFirst())
{
name_of_GPRS__available = new String[c.getCount()];
apn_id = new int [c.getCount()];
int i= 0;
do{
name_of_GPRS__available [i]= c.getString(c.getColumnIndex("name"));
apn_id[i]=c.getInt(c.getColumnIndex("_id"));
//Log.d("TAG",name[i]);
i++;
}while(c.moveToNext());
//Log.d("TAG","End Of Records");
//name_of_GPRS_available [1]=" GPRS";
}
}
Kindly guide me. How can i do it. I'll be very thankful to you
I assume that this is for a Gingerbread Device as Setting the Default APN was removed in ICS (4.0 - API 14), deprecated.
Have you tried adding in:
You will need to add these permissions to your Android Manifest:
You can also have an additional
Spinner
come up to have the User select from available Wifi spots by using Scan Result: http://developer.android.com/reference/android/net/wifi/ScanResult.htmland then
WifiManager: http://developer.android.com/reference/android/net/wifi/WifiManager.html
to set the Desired Network if there is not a default connection in place.
Markana has a nice tutorial on using Wifi this way: http://marakana.com/forums/android/examples/40.html