如果未找到结果,则显示Toast

时间:2016-11-13 12:00:32

标签: java android

快速了解我要做的事情。我正在创建一个扫描查找某些Wi-Fi连接的脚本。如果找到它,则返回带有String的StartingActivity。

但如果它扫描所有连接并且没找到正确的连接,我如何让它显示Toast。因为现在它只是坐在那里什么都不做。我必须向用户解释它什么都没找到。

Button btnHit;
TextView txtJson;
String urlfinal;
String fssid;
Intent intent;
private static final String  TAG = "My Activity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_find_connection);

    btnHit = (Button) findViewById(R.id.request);
    txtJson = (TextView) findViewById(R.id.results);


    if (Build.VERSION.SDK_INT > 22) {

        final String CoarseLocation = Manifest.permission.ACCESS_COARSE_LOCATION;
        final String AccessWifi = Manifest.permission.ACCESS_WIFI_STATE;
        final String ChangeWifi = Manifest.permission.CHANGE_WIFI_STATE;

        if (checkSelfPermission(CoarseLocation) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, 123);
        }

        if (checkSelfPermission(AccessWifi) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.ACCESS_WIFI_STATE}, 123);
        }

        if (checkSelfPermission(ChangeWifi) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.CHANGE_WIFI_STATE}, 123);
        }
    }



    LocationManager lman = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
    boolean network_enabled = false;

    try
    {
        network_enabled = lman.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    } catch (Exception ex) {}


    if (!network_enabled)
    {
        startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
    }


    btnHit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            final WifiManager mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);

            mWifiManager.setWifiEnabled(true);

            IntentFilter filter = new IntentFilter();
            filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);

            registerReceiver(new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {

                    List<ScanResult> results = mWifiManager.getScanResults();
                    final int Amount = results.size();

                    int num = 0;

                    while (num < Amount)
                    {
                        Log.v(TAG, "SSID  =  " + results.get(num).SSID);

                        num = num+1;
                    }

                    int dis = 0;

                    String res = "Results:\n\n\n";

                    while (dis < Amount)
                    {
                        res = res + results.get(dis).SSID + "\n\n";

                        new JsonTask().execute(results.get(dis).SSID);

                        dis = dis+1;
                    }

                }
            }, filter);

            mWifiManager.startScan();

        }
    });

}



private class JsonTask extends AsyncTask<String, String, String> {

    ProgressDialog pd;

    protected void onPreExecute() {
        super.onPreExecute();

        pd = new ProgressDialog(FindConnection.this);
        pd.setMessage("Please wait...");
        pd.setCancelable(false);
        pd.show();
    }

    protected String doInBackground(String... params) {


        HttpURLConnection connection = null;
        BufferedReader reader = null;

        try {
            fssid = params[0];
            urlfinal = "http://myurl?ssid=" + fssid;
            URL url = new URL(urlfinal);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();


            InputStream stream = connection.getInputStream();

            reader = new BufferedReader(new InputStreamReader(stream));

            StringBuffer buffer = new StringBuffer();
            String line = "";

            while ((line = reader.readLine()) != null) {

                buffer.append(line+"\n");

                if (!line.equals("null"))
                {
                    String NetworkSSID = fssid;
                    String NetworkPass = line;

                    WifiConfiguration config = new WifiConfiguration();
                    config.SSID = "\"" + NetworkSSID +  "\"";

                    config.preSharedKey = "\"" + NetworkPass + "\"";

                    WifiManager wifiman = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
                    wifiman.addNetwork(config);

                    List<WifiConfiguration> list = wifiman.getConfiguredNetworks();

                    for ( WifiConfiguration i : list )
                    {

                        if (i.SSID != null && i.SSID.equals("\"" + NetworkSSID + "\""))
                        {
                            wifiman.disconnect();
                            wifiman.enableNetwork(i.networkId, true);
                            wifiman.reconnect();

                            break;
                        }

                        Intent intent1 = new Intent(FindConnection.this, StartingPage.class);
                        intent1.putExtra("ssid_name", fssid);
                        startActivity(intent1);
                    }
                }

            }

            return buffer.toString();


        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        if (pd.isShowing()){
            pd.dismiss();
        }
    }
}

更新:

我最好的猜测是如何设置一个计时器,如果它在那里停留5秒然后显示一个吐司(这意味着它没有改变活动,所以没有找到结果)。但它觉得这不是最好的方法。

1 个答案:

答案 0 :(得分:1)

如果results.size为零(0),则在以下行之后显示吐司。

final int Amount = results.size();

这可能就足够了。 [我不确定你是否可以从广播接收器扔吐司。我几乎没有与他们合作。]

干杯!