0

I would like to just lock my app so no one can get out of it, and I was looking at Lock task mode, simultaneously following this: Android Studio, Kiosk mode, Single-Purpose Devices, Lock Task mode -lock-task-mode

my code:

        Context context = getApplicationContext();
        DevicePolicyManager dpm =
                (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
        ComponentName adminName = getComponentName();

        dpm.setLockTaskPackages(adminName, APP_PACKAGES);
        ActivityOptions options = ActivityOptions.makeBasic();
        //options.setLockTaskEnabled(true);

        PackageManager packageManager = getPackageManager();
        Intent launchIntent = packageManager.getLaunchIntentForPackage(KIOSK_PACKAGE);
        if (launchIntent != null) {
            startActivity(launchIntent, options.toBundle());
        }

my error:

FATAL EXCEPTION: main
    Process: com.gattolfo.gestionaluber, PID: 13920
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gattolfo.gestionaluber/com.gattolfo.gestionaluber.MainActivity}: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.gattolfo.gestionaluber cmp=com.gattolfo.gestionaluber/.MainActivity } from ProcessRecord{c79b603 13920:com.gattolfo.gestionaluber/u0a162} (pid=13920, uid=10162) with lockTaskMode=true
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3473)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3637)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2105)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7703)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)
     Caused by: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.gattolfo.gestionaluber cmp=com.gattolfo.gestionaluber/.MainActivity } from ProcessRecord{c79b603 13920:com.gattolfo.gestionaluber/u0a162} (pid=13920, uid=10162) with lockTaskMode=true
        at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
        at android.os.Parcel.createException(Parcel.java:2357)
        at android.os.Parcel.readException(Parcel.java:2340)
        at android.os.Parcel.readException(Parcel.java:2282)
        at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:3696)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1745)
        at android.app.Activity.startActivityForResult(Activity.java:5320)
        at android.app.Activity.startActivity(Activity.java:5660)
        at com.gattolfo.gestionaluber.MainActivity.loadKioskMode(MainActivity.java:137)
        at com.gattolfo.gestionaluber.MainActivity.onCreate(MainActivity.java:83)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3446)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3637) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2105) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7703) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997) 
     Caused by: android.os.RemoteException: Remote stack trace:
        at com.android.server.wm.SafeActivityOptions.checkPermissions(SafeActivityOptions.java:245)
        at com.android.server.wm.SafeActivityOptions.getOptions(SafeActivityOptions.java:125)
        at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1029)
        at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:675)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1110)
W/System: A resource failed to call close. 
I/Process: Sending signal. PID: 13920 SIG: 9

0 Answers0