Как отключить андроид из java без доступа root? [Дубликат]

OpenCV использует BGR как свой порядок цветов по умолчанию для изображений, matplotlib использует RGB. Когда вы показываете изображение, загруженное с помощью OpenCv в matplotlib, каналы будут возвращаться на передний план.

Самый простой способ исправить это - использовать OpenCV для явного преобразования его обратно в RGB, как и при создании изображения в оттенках серого.

RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

И затем используйте это в ваш сюжет.

6
задан Venkat 3 November 2012 в 12:49
поделиться

6 ответов

Возможно, вы можете использовать PowerManager для его перезагрузки (это не гарантирует перезагрузки - OS может отменить его):

http://developer.android.com/ ссылка / android / os / PowerManager.html # reboot (java.lang.String )

Для этого требуется разрешение REBOOT:

http: // разработчик .android.com / reference / android / Manifest.permission.html # REBOOT

Можете ли вы также проверить свой логарифм при попытке включить / отключить блокировку клавиатуры и опубликовать что там?

Вы не можете сделать это из обычного приложения SDK. Это могут быть только приложения, подписанные с ключом прошивки системы.

4
ответ дан Krishnakant Dalal 27 August 2018 в 16:31
поделиться

Я не вижу никакого сходства с вашим названием и фрагментом кода в теле. Этот фрагмент связан с KeyGuardManager, который используется для блокировки и разблокировки клавиатуры.

Чтобы выключить телефон, вам понадобятся команды PowerManager или SU. (На корневых устройствах.)

1
ответ дан Chathuranga Chandrasekara 27 August 2018 в 16:31
поделиться

С запущенной командой командной строки оболочки svc power shutdown работает для меня в android 7.1

1
ответ дан Ken Johnson 27 August 2018 в 16:31
поделиться

Это код, который я использую для выполнения любой системной команды.

void shutdown_sys()
{
    Process chperm;
    try {
        chperm=Runtime.getRuntime().exec("su");
          DataOutputStream os = 
              new DataOutputStream(chperm.getOutputStream());

              os.writeBytes("shutdown\n");
              os.flush();

              chperm.waitFor();

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Вызовите эту функцию из своего приложения Android. Он будет работать, если su работает в вашей системе. Дайте мне знать, если это не сработает. У меня нет базы Android, готовой к тестированию. Но то же самое работает для перезагрузки. Таким образом, shutdown также является командной оболочкой Linux, которая также будет присутствовать на Android. Все лучшее

2
ответ дан mk.. 27 August 2018 в 16:31
поделиться

Возможно, но вам необходимо Rooted Android-устройство с доступом Superuser. Вы не можете сделать это без Root, если ваше приложение не подписано с System Firmware Key. Попробуйте использовать следующий код:

Shutdown:

try {
    Process proc = Runtime.getRuntime()
                    .exec(new String[]{ "su", "-c", "reboot -p" });
    proc.waitFor();
} catch (Exception ex) {
    ex.printStackTrace();
}

Перезагрузка:

Тот же код, используйте "reboot" вместо "reboot -p".

[С другой стороны: я где-то читал, что эти команды не работают на Stock HTC ROMs, но не подтвердили себя]

6
ответ дан Sheharyar 27 August 2018 в 16:31
поделиться

Если ваше устройство внедрено, вы можете попробовать ниже решение

Выключение:

try {
    Process proc = Runtime.getRuntime()
                    .exec(new String[]{ "su", "-c", "reboot -p" });
    proc.waitFor();
} catch (Exception ex) {
    ex.printStackTrace();
}

Перезагрузка:

Тот же код, просто используйте "reboot" вместо "reboot -p".

0
ответ дан Yogesh Rathi 27 August 2018 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: