簡體   English   中英

找不到活動來處理Intent {act = android.app.action.ADD_DEVICE_ADMIN(有附加內容)}

[英]No Activity found to handle Intent { act=android.app.action.ADD_DEVICE_ADMIN (has extras) }

我正在嘗試啟用設備管理,因此我可以在Android 9中創建輔助用戶。

首先是使用ACTION_ADD_DEVICE_ADMIN發送一個意圖,如下所示:

                    // Launch the activity to have the user enable our admin.
                Intent deviceAdminIntent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
                deviceAdminIntent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminRen);
                deviceAdminIntent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                        getResources().getString(R.string.device_admin_activation_message));

                startActivityForResult(deviceAdminIntent, REQ_ENABLE_DEVICE_ADMIN);

必須事先在manifest.xml中使用正確的intent過濾器定義deviceAdminReceiver:

    <activity android:name=".AuthSessionActivity" />
    <activity android:name=".CreateRenUser"/>
    <receiver android:name=".DeviceAdminRen"
        android:label="@string/renault_device_admin"
        android:description="@string/ren_device_admin_description"
        android:permission="android.permission.BIND_DEVICE_ADMIN">
        <meta-data android:name="android.app.device_admin"
            android:resource="@xml/device_admin_ren" />
        <intent-filter>
            <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
        </intent-filter>
    </receiver>

還定義了deviceAdminReceiver類:

public class DeviceAdminRen extends DeviceAdminReceiver {

.........

但后來我收到了錯誤:

03-28 16:44:54.573 7173 7173 E AndroidRuntime:java.lang.RuntimeException:無法恢復活動{com.sensory.trulysecureexample / com.sensory.trulysecure.custom.CreateRenaultUser}:android.content.ActivityNotFoundException:未找到活動處理Intent {act = android.app.action.ADD_DEVICE_ADMIN(有附加內容)} 03-28 16:44:54.573 7173 7173 E AndroidRuntime:at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3822)03-28 16 :44:54.573 7173 7173 E AndroidRuntime:at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3854)03-28 16:44:54.573 7173 7173 E AndroidRuntime:at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityIte)

我的Android應用程序有幾個活動和片段,但如果我理解得很好,這應該是一個Android系統活動。 我的設備還有“功能:android.software.device_admin”,當列出“adb shell pm list features”時我的設備是否有任何限制,阻止處理ACTION_ADD_DEVICE_ADMIN意圖?

注意:我按照Google Android指南https://developer.android.com/guide/topics/admin/device-admin.html

謝謝

常量/變量mDeviceAdminRen的內容是什么? 您的代碼段似乎缺少這一點。

它應該包含設備管理組件的組件名稱,因此在您的情況下是DeviceAdminRen.getComponentName(Context context)

是這樣的嗎?

當我使用Android NDK構建應用程序時,我在C ++ lib的Makefile中添加了LOCAL_PRIVILEGED_MODULE構建指令。 gnu-libstdc ++ / Android.mk:LOCAL_PRIVILEGED_MODULE:= true

它工作了!! Android中有一個提示要求啟用設備管理,然后創建二級用戶變得很容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM