android获取连接wifi名称,android 获取当前连接WIFI名称的有关问题
android 獲取當前連接WIFI名稱的問題
我在程序內通過以下方法獲取當前連接的WIFI名稱(SSID),這個也是網上找別人的,但在我程序內就獲取不到呢?
1、在AndroidManifest.xml文件內增加
2、在源代碼內通過以下函數獲取SSID
private?String?getSSid(){
WifiManager?wm?=?(WifiManager)?getSystemService(WIFI_SERVICE);
if(wm?!=?null){
WifiInfo?wi?=?wm.getConnectionInfo();
if(wi?!=?null){
String?s?=?wi.getSSID();
if(s.length()>2&&s.charAt(0)?==?'"'&&s.charAt(s.length()?-1)?==?'"'){
return?s.substring(0,s.length()-1);
}
}
}
return?"";
}
實際跟蹤時,發現wm不為null,但wi.getSSID()獲取到的是,wi的名稱是UNINITIALIZED,確認網絡是連接上的,是哪里沒有初始化還是什么原因?請高手指點;
------解決方案--------------------
下面是我剛剛實驗過的代碼:掃描所有可用的wifi,再改下應該就可以獲取到當前連接的,供參考,如果你改好了也告訴一下~
MainActivity.java
package?com.example.wifistudy;
import?java.text.SimpleDateFormat;
import?java.util.Date;
import?java.util.List;
import?android.app.Activity;
import?android.app.ActionBar;
import?android.app.Fragment;
import?android.content.BroadcastReceiver;
import?android.content.Context;
import?android.content.Intent;
import?android.content.IntentFilter;
import?android.net.wifi.ScanResult;
import?android.net.wifi.WifiManager;
import?android.os.Bundle;
import?android.view.LayoutInflater;
import?android.view.Menu;
import?android.view.MenuItem;
import?android.view.View;
import?android.view.ViewGroup;
import?android.widget.TextView;
import?android.os.Build;
public?class?MainActivity?extends?Activity
{
TextView?mainText;
WifiManager?mainWifi;
WifiReceiver?receiverWifi;
List?wifiList;
StringBuilder?sb?=?new?StringBuilder();
@Override
protected?void?onCreate(Bundle?savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if?(savedInstanceState?==?null)
{
getFragmentManager().beginTransaction()
.add(R.id.container,?new?PlaceholderFragment()).commit();
}
mainText?=?(TextView)?findViewById(R.id.mainText);
mainWifi?=?(WifiManager)?getSystemService(Context.WIFI_SERVICE);
receiverWifi?=?new?WifiReceiver();
registerReceiver(receiverWifi,?new?IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();
mainText.setText("\\nStarting?Scan...\\n");
}
@Override
public?boolean?onCreateOptionsMenu(Menu?menu)
{
menu.add(0,?0,?0,?"Refresh");
//?Inflate?the?menu;?this?adds?items?to?the?action?bar?if?it?is?present.
getMenuInflater().inflate(R.menu.main,?menu);
return?true;
}
@Override
public?boolean?onOptionsItemSelected(MenuItem?item)
{
mainWifi.startScan();
mainText.setText("Starting?Scan");
//?Handle?action?bar?item?clicks?here.?The?action?bar?will
//?automatically?handle?clicks?on?the?Home/Up?button,?so?long
//?as?you?specify?a?parent?activity?in?AndroidManifest.xml.
int?id?=?item.getItemId();
if?(id?==?R.id.action_settings)
{
return?true;
}
return?super.onOptionsItemSelected(item);
}
protected?void?onPause()
{
unregisterReceiver(receiverWifi);
super.onPause();
}
protected?void?onResume()
{
registerReceiver(receiverWifi,?new?IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
super.onResume();
}
/**
*?A?placeholder?fragment?containing?a?simple?view.
*/
public?static?class?PlaceholderFragment?extends?Fragment
{
public?PlaceholderFragment()
{
}
@Override
public?View?onCreateView(LayoutInflater?inflater,?ViewGroup?container,
Bundle?savedInstanceState)
{
View?rootView?=?inflater.inflate(R.layout.fragment_main,?container,
false);
return?rootView;
}
}
class?WifiReceiver?extends?BroadcastReceiver
{
public?void?onReceive(Context?c,?Intent?intent)
{
SimpleDateFormat????formatter????=???new????SimpleDateFormat????("yyyy年MM月dd日????HH:mm:ss?????");
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的android获取连接wifi名称,android 获取当前连接WIFI名称的有关问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 二次点击退出,andro
- 下一篇: android+app+wifi+控制+