0

I'd like to capture the currently connected SSID - and display it in a TextView - how can this be done?

From what I can gather I'll need to use the following:

 public void run() {
        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifi.getConnectionInfo();
        String nameEt = info.getSSID();
    }

But when I attempt to implement it - I cannot seem to display it on the screen.

JAVA:

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.TimePicker;
import java.text.DecimalFormat;

public class AddEditDevice extends Activity {

    private long rowID;
    private EditText nameEt;
    private EditText capEt;
    private EditText codeEt;
    private TimePicker timeEt;
    private TextView ssid;

    // DecimalFormat df = new DecimalFormat ("00");
    // public String minutes = df.format(min);
    // @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_country);
        nameEt = (EditText) findViewById(R.id.nameEdit);
        capEt = (EditText) findViewById(R.id.capEdit);
        codeEt = (EditText) findViewById(R.id.codeEdit);
        timeEt = (TimePicker) findViewById(R.id.timeEdit);
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            rowID = extras.getLong("row_id");
            nameEt.setText(extras.getString("name"));
            capEt.setText(extras.getString("cap"));
            codeEt.setText(extras.getString("code"));
            String time = extras.getString("time");
            String[] parts = time.split(":");
            timeEt.setCurrentHour(Integer.valueOf(parts[0]));
            timeEt.setCurrentMinute(Integer.valueOf(parts[1]));
            timeEt.setIs24HourView(false);
        }
        Button saveButton = (Button) findViewById(R.id.saveBtn);
        saveButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                if (nameEt.getText().length() != 0) {
                    AsyncTask<Object, Object, Object> saveContactTask = 
                            new AsyncTask<Object, Object, Object>() {

                        @Override
                        protected Object doInBackground(Object... params) {
                            saveContact();
                            return null;
                        }

                        @Override
                        protected void onPostExecute(Object result) {
                            finish();
                        }
                    };
                    saveContactTask.execute((Object[]) null);
                } else {
                    AlertDialog.Builder alert = new AlertDialog.Builder(
                        AddEditDevice.this);
                    alert.setTitle(R.string.errorTitle);
                    alert.setMessage(R.string.errorMessage);
                    alert.setPositiveButton(R.string.errorButton, null);
                    alert.show();
                }
            }
        });
    }

    public void run() {
        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifi.getConnectionInfo();
        String ssid = info.getSSID();
        TextView ssidTextView = (TextView) findViewById(R.id.wifiSSID);
        ssidTextView.setText(ssid);
    }

    private void saveContact() {
        DatabaseConnector dbConnector = new DatabaseConnector(this);
        if (getIntent().getExtras() == null) {
            dbConnector.insertContact(nameEt.getText().toString(), capEt
                .getText().toString(), timeEt.getCurrentHour().toString() + ":"
                + timeEt.getCurrentMinute().toString(), codeEt.getText()
                .toString());
        } else {
            dbConnector.updateContact(rowID, nameEt.getText().toString(), capEt
                .getText().toString(), timeEt.getCurrentHour().toString() + ":"
                + timeEt.getCurrentMinute().toString(), codeEt.getText()
                .toString());
        }
    }
}

XML:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="5dp" >

        <EditText
            android:id="@+id/nameEdit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/name_hint"
            android:imeOptions="actionNext"
            android:inputType="textPersonName|textCapWords" />

        <TextView
            android:id="@+id/wifiSSID"
            style="@style/StyleText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <EditText
            android:id="@+id/capEdit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/cap_hint"
            android:imeOptions="actionNext"
            android:inputType="textPersonName|textCapWords" >

            <requestFocus />
        </EditText>

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Data Limit"
            android:textAppearance="?android:textAppearanceMedium"
            android:textColor="#ffffff" />

        <SeekBar
            android:id="@+id/seekBar1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="left"
                android:text="Unlimited Data"
                android:textColor="#ffffff" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="right"
                android:text="10MB"
                android:textColor="#ffffff" />
        </LinearLayout>

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bandwidth Limit"
            android:textAppearance="?android:textAppearanceMedium"
            android:textColor="#ffffff" />

        <SeekBar
            android:id="@+id/seekBar1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="left"
                android:text="Unlimited Bandwidth"
                android:textColor="#ffffff" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="right"
                android:text="10kbs"
                android:textColor="#ffffff" />
        </LinearLayout>

        <EditText
            android:id="@+id/codeEdit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:ems="10"
            android:gravity="center"
            android:hint="@string/code_hint"
            android:imeOptions="actionNext"
            android:inputType="textUri"
            android:lines="1" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="Parental Controls"
                android:textColor="#ffffff" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="Block Streaming"
                android:textColor="#ffffff" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="horizontal" >

            <ToggleButton
                android:id="@+id/ToggleButton03"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="ToggleButton" />

            <ToggleButton
                android:id="@+id/ToggleButton03"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="ToggleButton" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="Block File Type/Size"
                android:textColor="#ffffff" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="Banned Music/Video"
                android:textColor="#ffffff" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="horizontal" >

            <ToggleButton
                android:id="@+id/ToggleButton02"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="ToggleButton" />

            <ToggleButton
                android:id="@+id/ToggleButton02"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="ToggleButton" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="horizontal" >
        </LinearLayout>

        <TextView
            android:id="@+id/TextView02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:textAppearanceSmall" />

        <TextView
            android:id="@+id/TextView02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="8dp"
            android:layout_weight="1.0"
            android:text="WiFi Time Limit"
            android:textAppearance="?android:textAppearanceMedium"
            android:textColor="#ffffff" />

        <TimePicker
            android:id="@+id/timeEdit"
            android:layout_width="286dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_weight="1.0" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:orientation="horizontal" >
        </LinearLayout>

        <Button
            android:id="@+id/saveBtn"
            android:layout_width="199dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="15dp"
            android:text="@string/save_btn" />
    </LinearLayout>

</ScrollView>
Mr_and_Mrs_D
  • 32,208
  • 39
  • 178
  • 361

1 Answers1

0

You aren't calling run() from anywhere, and that method is not trying to update a textview. Try doing this in your run method.

TextView ssidTextView = (TextView) findViewById(R.id.<your_textview_id>);
ssidTextView.setText(nameEt);

And thenmake sure you call run() whenever you want to update the ssid in the TextView.

Sky Kelsey
  • 19,192
  • 5
  • 36
  • 77
  • I updated the source code according to your method - but I'm getting an error stating: The method setText(CharSequence) in the type TextView is not applicable for the arguments (EditText) – John A. Pindergrass Apr 04 '13 at 21:33
  • Are you passing in an EditText? Where did that come from? You need to pass a String in. Whatever you got from info.getSSID() should be passed in to setText(). – Sky Kelsey Apr 04 '13 at 21:52
  • Just in case you didn't notice this, you are using nameEt as a variable name for two different types here. In your run() method, you are using it to hold the ssid String, and elsewhere to hold an EditText. This is obviously bad and confusing. Notice that this answer asked you to place the two lines into your run() method. – Sky Kelsey Apr 04 '13 at 22:01
  • I updated my source above w a different name for the SSID variable - Now everything runs with no errors/problems - but the SSID textview shows up blank when executing the source above : ( – John A. Pindergrass Apr 04 '13 at 22:03
  • You still aren't calling run() from anywhere. Just remove the body from run(), and stick it right after you call setContentView(), and delete the run() method altogether. – Sky Kelsey Apr 04 '13 at 22:06