【发布时间】:2012-06-05 02:31:33
【问题描述】:
我正在尝试为将成为 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 文件的类中传递上下文对象。
我编辑了代码。
【问题讨论】:
-
你的问题没有多大意义。尝试更好地解释它。
-
让我试着改写一下,我有一个正在创建的库,我们称之为“lib”。我有一个 Android 项目,我们称之为“P”。 P 正在使用“lib”,我正在尝试获取作为“lib”成员的 MAC 地址。我没有这样做,我得到 null 作为响应。