내 앱에는 두 가지 활동이 있습니다.다른 활동에서 DevicePolicyManager라는 매개 변수를 사용하여 funtction을 호출하려면 어떻게해야합니까?
활동 내가 잠금 화면 함수를 호출 할 수 있습니다
adminComponent = new ComponentName(MainActivity.this,PermissionReceiver.class);
policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
if (policyManager.isAdminActive(adminComponent)) {
lockScreen(policyManager);
}
A, 그것은 잘 작동하지만 가 어떻게 활동 B에서이 함수를 호출 할 수 있습니다? 나는 활동 B
DevicePolicyManager policyManager = (DevicePolicyManager) getSystemService(MainActivity.DEVICE_POLICY_SERVICE);
lockScreen(policyManager);
이 코드를 시도하지만 난 예외를 얻을 07-12 22:38:36.939: E/AndroidRuntime(14061): java.lang.SecurityException: No active admin owned by uid 10245 for policy #3
잠금 화면 기능
public void lockScreen(final DevicePolicyManager aPolicyManager) {
final PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
final Handler handler = new Handler(getMainLooper());
final int[] retryCount = new int[] { 0 };
handler.post(new Runnable() {
@SuppressWarnings("deprecation")
@Override
public void run() {
if (powerManager.isScreenOn()&& retryCount[0] <= MAX_RETRY_COUNT) {
aPolicyManager.lockNow();
//unregisterReceiver(turnOffScreenReciever);
retryCount[0]++;
handler.postDelayed(this, RETRY_DELAY * retryCount[0]);
} else {
finish();
}
}
});
}
그것은이 링크의 질문 비슷 Cannot always launch DevicePolicyManager activity from another activity하지만 최종 답변을 얻지 못합니다. 누구든지 나를 도울 수 있습니까?