Android web服务,包括IMEI,参数中的Mac地址

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

我正在开发一个应用程序,它向服务器发送一些参数,如密钥、请求类型等,我在NetworkManager中设置了公共参数,在这里我有所有连接代码。有一些公共参数,如生成随机trid、getMac、getImei。 问题在于,由于我的NetworkManager是一个类,因此我在此处遇到一个错误:

我的NetworkManager的AsyncTask中有以下代码:

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方法?