[英]Implementing activity how to use methods in jar in android
i am creating own framework api (telephone services related api) i am creating one library app this library app to create myjar.jar i am developing another application just i am adding asset folder this myjar.jar and configure this jar adding buildpath in coding importing package
此應用程序運行到真實設備:
MacTesting mp = new MacTesting();
mp.getMacAddress();
Log.v("1111","this is mac add"+ mp.getMacAddress());
結果是 null
public class MacIdTesting extends Activity implements Parcelable
{
public static final String KEY_WIFI_MAC_ADDRESS = null;
public static final String READ_PHONE_STATE = null;
/** Called when the activity is first created. */
public String mMacAddress;
public String phonenumber;
void setMacAddress(String macAddress) {
this.mMacAddress = macAddress;
}
public String getMacAddress() {
return mMacAddress;
}
public String getLine1Number()
{
ContextWrapper mContext = null;
mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, "Requires READ_PHONE_STATE");
MacIdTesting mPhone = null;
return mPhone.getLine1Number();
}
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = manager.getConnectionInfo();
String MACAddress = wifiInfo.getMacAddress();
System.out.println("macsddress "+MACAddress);
}
@Override
public int describeContents()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags)
{
// TODO Auto-generated method stub
dest.writeString(mMacAddress);
}
}
看到這個截圖
如何解決這個問題
您的 class 是一個活動,具有 onCreate 方法,但不是構造函數。
我將 onCreate 方法更改為這樣的構造函數(並刪除extends activity
):
public MacIdTesting(Context ctx)
{
WifiManager manager = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = manager.getConnectionInfo();
mMacAddress = wifiInfo.getMacAddress();
}
並從這樣的活動中調用它:
MacTesting mp = new MacTesting(this);
另外,我會保留private
成員而不是public
成員( private String mMacAddress
)。
有一些問題:
MacIdTesting
是一個 Activity,但您使用它AndroidMac
class 本身就是一個 Activity。 因此MacIdTesting
的生命周期方法不會被調用。 例如,您可以讓AndroidMac
擴展MacIdTesting
。 然后你可以調用getMacAddress()
。
MacIdTesting
中的代碼有問題:您將 MAC 地址分配給某個局部變量,而 object 中的字段永遠不會被設置。
在編寫庫之前,我建議閱讀更多關於 android 生命周期以及可能關於 Java 的信息。
添加
this.mMacAddress = MACAddress;
作為 MacTesting 的 onCreate() 方法的最后一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.