안드로이드 개발 질문/답변
(글 수 45,052)
버튼을 누르면 디바이스 관리자가 활성화되도록 했는데요 ;;;
계속 실패하고 Setting에서 확인해보면 등록만 되있어요 ㅠㅠ
왜 안되는 걸까요?
도와주세요 ㅠㅠ
아래 소스입니다.
public class MainActivity extends Activity { private static final int REQUEST_CODE_ENABLE_ADMIN = 1; Button mbutton; DevicePolicyManager mDPM; ComponentName mDeviceAdminSample; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); mDeviceAdminSample = new ComponentName(this, DeviceAdminSampleReceiver.class); mbutton = (Button) findViewById(R.id.button1); mbutton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample); startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case REQUEST_CODE_ENABLE_ADMIN: if (resultCode == Activity.RESULT_OK) { Log.i("DeviceAdminSample", "Administration enabled!"); } else { Log.i("DeviceAdminSample", "Administration enable FAILED!"); // 이 로그가 계속 뜨네요 ;;; ㅠㅠ } return; } super.onActivityResult(requestCode, resultCode, data); } public static class DeviceAdminSampleReceiver extends DeviceAdminReceiver { @Override public void onEnabled(Context context, Intent intent) { showToast(context, "Sample Device Admin: enabled"); } @Override public CharSequence onDisableRequested(Context context, Intent intent) { return "This is an optional message to warn the user about disabling."; } @Override public void onDisabled(Context context, Intent intent) { showToast(context, "Sample Device Admin: disabled"); } @Override public void onPasswordChanged(Context context, Intent intent) { showToast(context, "Sample Device Admin: pw changed"); } void showToast(Context context, CharSequence msg) { Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); } } } |
아 해결했습니다.
매니패스트에 리시버 등록을 잘못해서 그런거였습니다 ㅠㅠ