Android web服务,包括IMEI,参数中的Mac地址
我正在开发一个应用程序,它向服务器发送一些参数,如密钥、请求类型等,我在NetworkManager中设置了公共参数,在这里我有所有连接代码。有一些公共参数,如生成随机trid、getMac、getImei。 问题在于,由于我的NetworkManager是一个类,因此我在此处遇到一个错误: 我的NetworkManager的AsyncTask中有以下代码:Android web服务,包括IMEI,参数中的Mac地址,android,android-webservice,Android,Android Webservice,我正在开发一个应用程序,它向服务器发送一些参数,如密钥、请求类型等,我在NetworkManager中设置了公共参数,在这里我有所有连接代码。有一些公共参数,如生成随机trid、getMac、getImei。 问题在于,由于我的NetworkManager是一个类,因此我在此处遇到一个错误: 我的NetworkManager的AsyncTask中有以下代码: inputParams.put("imei", getIMEINumber());//for adding the param
inputParams.put("imei", getIMEINumber());//for adding the param
private String getIMEINumber() {
// TODO Auto-generated method stub
TelephonyManager telephonymanager = (TelephonyManager)main
.getSystemService(Context.TELEPHONY_SERVICE);
String uid = telephonymanager.getDeviceId();
// telephonymanager.getSimSerialNumber()
Log.v("vas", "DeviceId: " + uid);
return uid;
}
类型的方法getActivity()未定义
当我将NetworkManager转换成一个片段时,我得到了一个运行时异常
E/AndroidRuntime(624): Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
任何帮助都将不胜感激。在您的NetworkManager类中,为imei编号编写此方法
public static String getIMEInumber(Context context) {
String identifier = null;
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (tm != null)
identifier = tm.getDeviceId();
if (identifier == null || identifier.length() == 0)
identifier = Secure.getString(context.getContentResolver(),
Secure.ANDROID_ID);
return identifier;
}
在需要的地方调用这个方法。这里的上下文非常重要。。确保您的上下文不为null
String imei=NetworkManager.getIMEInumber(context);
希望它能起作用 你把这个
TelephonyManager-TelephonyManager=(TelephonyManager)getActivity()放在哪里了代码>在“活动”或“片段”中?在我的NetworkManager.class中没有,我将所说的所有常用参数都放在哪个方法中?你能把你的活动或片段放在这里吗?我不是在问方法,我是说你从这个方法中调用了什么getIMEINumber()
例如onCreate,onResume在哪里?bro只需在onCreate()中调用该方法;解决!谢谢你的回复,兄弟!!仍然得到相同的响应,尽管问题可能是您的onCreate()方法。。。您在哪里调用了asynctask方法?