5

我有两个课程:其中一个是活动课程,另一个是非活动课程。我调用了一个非活动类内部的方法来返回mac地址。

活动课:

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。

4

3 回答 3

3

如果您的 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;
    }

}

}

于 2012-09-28T09:09:30.200 回答
1
    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;

}}

我没有运行代码,但这是要做的事情

于 2012-09-28T08:58:53.477 回答
0

我们可以将Context那个传递Activity给那个non-Activity类。

这是来自 net 的片段:

Class conectivityManager

Context myContext;

public conectivityManager(Context cxt){

myContext = cxt

}

public startWifi(){

//start-wifi

}

请参阅此链接:

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

于 2012-09-28T09:01:29.813 回答