我正在尝试为将成为 jar 文件的 Android 项目创建 SDK。
我遇到的问题是该库具有返回设备 MAC 地址的函数。为此,我必须使用:
WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
此命令要求我的 sdk 类将从 Activity 类继承并实现该onCreate
功能。
当我尝试从另一个引用该库的 Android 项目中使用库(jar)时,我收到一条错误消息:
system service not available to activities before oncreate
甚至我的命令都在 onCreate 函数中。
有谁知道如何解决它?或者我是否需要以不同的方式实现 SDK,使我能够使用一些 Android 服务/功能?
我为库和项目添加了一个示例代码:
库(编译成 jar 文件):
public class DeviceDetails
{
public String MACAddress="";
public String IMEI="";
public DeviceDetails(Context context)
{
WifiManager wm = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
MACAddress=wm.getConnectionInfo().getMacAddress();
TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
IMEI=telephonyManager.getDeviceId();
}
}
使用该库的项目
public class TestSDKActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DeviceDetails d=new DeviceDetails(getApplicationContext());
String i=d.IMEI;
String m=d.MACAddress;
}
}
* 问题已解决* *
我无法获得mac地址或imei的原因是为了使用wifi服务或电话服务,我必须从使用jar文件的类中传递上下文对象。
我编辑了代码。