我的项目有一个正在运行的后台服务类。服务类执行某个操作,并且每个 x 秒的时间段,它都会给出一个输出标志(True 或 False)。基于该标志,只要它为“True”,我就想调用并运行 DevicePolicyManger (deviceManger)。
但是,我得到的错误是设备管理器总是返回“Null”并且应用程序崩溃。当我在 mainactivity 类上运行 DevicePolicyManger (deviceManger) 时,它工作正常。但这不是我的目标,我需要根据标志的输出从正在运行的服务类内部反复调用 DevicePolicyManger (deviceManger)。
这是服务代码
public class test extends Service{
DevicePolicyManager deviceManger;
ComponentName compName;
public boolean active;
Context mContext;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// perform service task here and output a boolean flag (True or False).
if(flag == True){// I want to call devicemanger from here every time I get "True".
deviceManger = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
compName = new ComponentName(mContext, DeviceAdmin.class);
System.out.println("deviceManger " + deviceManger);
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, compName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "some text.");
mContext.startActivity(intent);
active = deviceManger.isAdminActive(compName);
System.out.println("active " + active);
if (active) {
deviceManger.lockNow();
}
}
}
}
谁能帮我这个?