我正在尝试为一些有用的函数创建一个非活动类,例如获取设备Imei编号。 但是当我使用时
mngr = (TelephonyManager)myContext(Context.TELEPHONY_SERVICE);
它给了我这个错误:
The method myContext(String) is undefined for the type FunctionsForWorking
答案 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
}