我有两个类:其中一个是活动类,另一个是非活动类。我在非活动类中调用一个方法来返回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。
答案 0 :(得分: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;
}
}
}
答案 1 :(得分: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;
}}
我没有运行代码,但这就是它的完成方式
答案 2 :(得分:0)
我们可以将Context
的{{1}}传递给Activity
类。
以下是net的摘录:
non-Activity
请参阅此链接: