質問

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>
役に立ちましたか?

解決

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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top