홈>
장치 정책 관리자가 작동하도록하려고하는데 활성화하려고하면 문제가 발생합니다. Google은 많은 것을 이미 알고 있으며 그 오류에 대해 이미 공격적입니다.
10-05 10:39:07.147: WARN/DeviceAdminAdd(144): Unable to retrieve device policy ComponentInfo{test.devadmin/test.devadmin.DeviceAdmin$MyDeviceAdminReceiver}
10-05 10:39:07.147: WARN/DeviceAdminAdd(144): android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{test.devadmin/test.devadmin.DeviceAdmin$MyDeviceAdminReceiver}
매니페스트 :
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DeviceAdmin" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".app.DeviceAdmin$Controller"
android:label="@string/activity_sample_device_admin">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.SAMPLE_CODE" />
</intent-filter>
</activity>
<receiver android:name="MyDeviceAdminReceiver"
android:label="@string/app_label"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
</application>
</manifest>
device_admin.xml
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
</device-admin>
활성화 방법
public void enable() {
if (!mDPM.isAdminActive(mDeviceAdmin)) {
Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
mDeviceAdmin);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"Additional text explaining why this needs to be added.");
startActivityForResult(intent, REQUEST_ENABLE);
} else {
mDPM.lockNow();
}
수신자 클래스는 기본적으로 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html
http : // rootfs .wordpress.com/2010/09/09/android-make-your-application-a-device-administrator/
도움이나 조언은 대단히 감사하겠습니다!
- 답변 # 1
- 답변 # 2
DeviceAdmin java 파일을 다시 확인하면 확장하려는 수신자 이름이 android manifest.xml 파일에서 지정하는 것과 다릅니다. DeviveAdmin java 파일을 표시하지 않았을 때의 추측입니다.
- 답변 # 3
마지막 날이 문제로 어려움을 겪고 있습니다 ... 내 문제가 발생했습니다. 내 문제는 내
componentName
에 있었다 나는 다음과 같은 생성자를하고 있었다 :val adminName = ComponentName(this, ::DeviceAdminReceiver.javaClass)
그리고 마침내 공개 생성자에 대한 경고를 받고 있음을 알았습니다. PackageManager.NameNotFoundException ...
로의 빠른 이동val adminName = ComponentName("com.project.myApp", "com.project.myApp.DeviceAdminReceiver")
모든 것이 즉시 작동했습니다.
관련 자료
- azure - HTTP를 통해 디바이스별로 IoT Hub에서 최신 메시지 (이벤트)를 검색하는 방법
- javascript - 상태를 검색 할 수 없습니다이 코드와 출력을 확인하십시오
- javascript - 비동기 함수에서 반환 된 객체를 검색 할 수 없습니다
- node.js - Sequelize를 사용하여 PG DB (Azure에서)에서 데이터를 검색 할 수 없습니다
- Sharepoint Rest API에서 폴더 만 검색 할 수 없습니다
- pdf - ps2pdf - 초기 장치를 열 수 없습니다
- amazon web services - boto3를 사용하여 정책을 만들 수 없습니다
- caching - gemfire clusterconfigurationnotavailableexception - 로케이터에서 클러스터 구성을 검색 할 수 없습니다
- 논리 앱에서 액체를 사용하여 콘텐츠 JSON에서 데이터를 검색 할 수 없음
- android - 장치에서 내 앱을 디버깅 할 수 없으면 대신 콘솔 작성이 시작됩니다
- powershell에서 파일 공유에 사용 된 공간과 여유 공간을 검색 할 수 없습니다 현재 아래 powershell 스크립트를 사용하고 있습니다
- javascript - 각도를 사용하여 자산 폴더에서 JSON 데이터를 검색 할 수 없습니다
- 레코드를 수동으로 삽입 할 때 Azure Storage Table에서 레코드를 검색 할 수 없음
- amazon web services - 서버리스 및 dynamodb/cognito/api 게이트웨이와 함께 람다 정책에서 ${cognito-identityamazonawscom - sub}을 사용할 수 없습니다
- azure - Visual Studio에서 'MicrosoftVisualStudioWindowsAzureAuthenticationIAzureRMTenantService'서비스를 검색 할 수 없습니다
- Wireshark의 무차별 모드를 사용하는 WiFi 라우터를 통해 동일한 네트워크의 다른 장치로 전송 된 데이터 패킷을 볼 수 없음
- java - unitName에 대한 EntityManagerFactory를 검색 할 수 없습니다
- android - 기기에 APK를 설치할 수 없습니다
- Xamarin C #의 Firebase에서 레코드를 검색 할 수 없습니다
- ios - 장치에서 영역 파일을 찾을 수 없습니다
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- JavaScript 변수를 HTML div에 '출력'하는 방법
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 문자열에서 특정 문자 제거
리시버 이름
<receiver android:name="MyDeviceAdminReceiver"
확인.
를 추가하지 않은 것 같아 수신자 이름 앞에 :