如何在非活动类中获取设备imei号码?

时间:2015-01-25 18:11:05

标签: android telephonymanager

我正在尝试为一些有用的函数创建一个非活动类,例如获取设备Imei编号。 但是当我使用时

    mngr = (TelephonyManager)myContext(Context.TELEPHONY_SERVICE);

它给了我这个错误:

    The method myContext(String) is undefined for the type FunctionsForWorking

2 个答案:

答案 0 :(得分:1)

我在我的App.java类中调用一个线程 - > OnCreate方法,我得到像这样的设备IMEI:

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

String IMEI = telephonyManager.getDeviceId();

足以将上下文通过参数传递给您的实现

答案 1 :(得分:0)

服务有自己的上下文,您可以使用它,因为您担心在代码中使用服务时使用IMEI:

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.v("ranjith","started service");
        TelephonyManager c=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        String device_id = c.getDeviceId();
        return super.onStartCommand(intent, flags, startId);
    }
}

关于如何将上下文传递给非Activity类的问题,答案只是将它作为构造函数中的参数传递给另一个类,例如: -

public class myActivityclass extends Activity{
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout1);
        nonActivityclass c=new nonActivityclass(Context context);
        -----------------------------
}

在非Activity类中:

public class nonActivityclass{
Context context;
public nonActivityclass(Context context)
{
         this.context=context
}
//you can use context now
}