2015-08-26 5 views
1

Я использовал this guide для активации своего приложения в качестве владельца устройства. Таким образом, я могу активировать блокировку задач. Это очень близко к тому, как я хочу, чтобы Android вел себя.Запустить другое приложение, пока включена блокировка задач

Возможно ли запустить одно или несколько конкретных сторонних приложений из устройства, владеющего приложением, и без дезактивации блокировки задач?

Если нет, возможно ли это с небольшим обходным решением? Я думаю об отключении блокировки задач, начиная с другого приложения, а затем дистанционно удалять блокировку задач для другого приложения.

Заранее спасибо.

ответ

1

Заблокированная задача может запускать только сторонние действия, если их launch flags позволяют запускать их в одну и ту же задачу. Если вы попытаетесь запустить действие в новой задаче, оно выведет предупреждение на logcat, и пользователь ничего не увидит.

AFAIK, нет общего способа блокировки другой задачи. Другая задача должна быть разработана для блокировки себя в ответ на некоторые намерения.

1

Я знаю, что я слишком поздно для вечеринки, но вот что я сделал, чтобы заставить его работать для меня.

Когда вы сделаете ваше приложение в качестве владельца устройства вы должны вызвать этот метод:

DevicePolicyManager myDevicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); 
    // get this app package name 
    ComponentName mDPM = new ComponentName(this, DeviceAdmin.class); 
    Utility.writeLogs(this, getString(R.string.info), "Trying to start lock task..."); 

    if (myDevicePolicyManager.isDeviceOwnerApp(this.getPackageName())) { 
     // get this app package name 
     String[] packages = {this.getPackageName()}; 
     // mDPM is the admin package, and allow the specified packages to lock task 
     myDevicePolicyManager.setLockTaskPackages(mDPM, packages); 
     startLockTask(); 
    } else { 
     Toast.makeText(getApplicationContext(), R.string.not_owner, Toast.LENGTH_LONG).show(); 
    } 

Просто добавьте имя пакета приложения, которое вы хотите, чтобы быть открыт из вашего приложения в

String[] packages = {this.getPackageName(), "Package names to be allowed"}; 

и он должен работать для вас.

+0

Это не работает, любая помощь по нему? –

+0

Можете ли вы поделиться линией кодов здесь? –