如何在非活动类中使用WifiManager?

我有两个类:其中一个是活动类,另一个是非活动类。 我在非活动类中调用一个方法来返回mac Adress。

活动类:

public class Control extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); deneme d = new deneme(this); // i has tried (getApplicatonContext) String x = d.macadress(); Toast.makeText(getApplicationContext(), x, Toast.LENGTH_LONG).show(); }} 

和非活动类:

 public class deneme { Context mcontext ; WifiManager wm; public deneme(Context mcontext){ this.mcontext = mcontext; } public String macadress(){ wm = (WifiManager)mcontext.getSystemService(Context.WIFI_SERVICE); String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); return m_szWLANMAC; }} 

但该方法返回null。 我有权限ACCESS_WIFI_STATE。

如果你的设备没有启用你的wifi,它将返回null作为你的情况,检查wifi是否启用然后如果启用返回mac地址否则通知用户启用wifi。

 package com.example.wifitest; import android.content.Context; import android.net.wifi.WifiManager; import android.widget.Toast; public class TEST { Context mcontext; WifiManager wm; public TEST(Context mcontext) { this.mcontext = mcontext; } public String macadress() { wm = (WifiManager) mcontext.getSystemService(Context.WIFI_SERVICE); if (wm.isWifiEnabled()) { String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); return m_szWLANMAC; } else{ Toast.makeText(mcontext, "Please enbale your wifi", Toast.LENGTH_SHORT).show(); return null; } } 

}

  public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); deneme d = new deneme(getApplicationContext()); // String x=d.wm.getConnectionInfo().getMacAddress(); String x = d.macadress(); Toast.makeText(getApplicationContext(), x, Toast.LENGTH_LONG).show(); } } class deneme { Context mcontext ; WifiManager wm; public deneme(Context mcontext){ this.mcontext = mcontext; } public String macadress(){ wm = (WifiManager)mcontext.getSystemService(Context.WIFI_SERVICE); String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); return m_szWLANMAC; }} 

我没有运行代码,但这是完成它

我们可以将该ActivityContext传递给该non-Activity类。

这是网络的一个片段:

 Class conectivityManager Context myContext; public conectivityManager(Context cxt){ myContext = cxt } public startWifi(){ //start-wifi } 

看到这个链接:

http://www.brighthub.com/mobile/htc/articles/75491.aspx