Есть более хитрый способ — можно попробовать показать всплывающее окно поверх интерфейса системы и задвинуть сам SurfaceView размером 1х1 за его пределы. Ваше решение с Activity имеет один минус — во время нахождения этой самой Activity на экране все нажатия на экран будут приходить в неё, а не в то, что под ней. Для пользователя это будет выглядеть так, будто всё зависло.
А, кстати, есть ещё разрешение «показывать интерфейс поверх других приложений» — можно попробовать сделать что-нибудь интересное с его помощью, например, включить immersive mode, а потом создать прозрачное окно поверх всего и перехватывать им жесты открытия навигации.
Во-первых, чтобы приложение считалось системным, его вовсе не обязательно подписывать сертификатом создателя системы. Достаточно просто залить apk-файл в папку /system/app. Для этого нужен либо рут, либо разблокированный загрузчик. Обновлять можно как обычно, оно будет ставиться в /data/app, но всё равно иметь полный доступ к системе. Главное — чтобы подписи совпадали.
Во-вторых, на планшетах доступен многопользовательский режим. С недавнего времени (4.3, кажется) пользователям можно ставить ограничения — т.е. выбирать, в какие приложения они могут заходить, а в какие — нет. Идея в том, чтобы создать пользователя с нужными ограничениями (отключить ему настройки и браузер, например), а на админа поставить пароль. Приложение киоска разумно поставить в качестве лаунчера — таким образом уже можно перехватить кнопки back и home, а recents ничего страшного всё равно не сделает, потому что кроме лаунчера никаких приложений будет не запустить, а сам лаунчер там не показывается.
Можно поставить protectionLevel=«signature» и тогда никакому другому приложению это разрешение не дадут, даже если оно прописано у него в манифесте. Единственный способ получить разрешение с таким параметром из другого приложения — подписать другое приложение тем же сертификатом, которым подписано главное.
Для записи в контент провайдер нужно право WRITE_SMS, но и без него (с тем, что на скрине) можно получить broadcast, отменить его и, скорее всего, пользователь никакого уведомления не увидит.
Отключать права можно, поищите в маркете AppOps Launcher, работает, кажется, с 4.2 до 4.4 (в 4.4.2 эту штуку убрали, назвав ошибкой).
Разрешение receive SMS не даёт права удалять сообщения и вообще не даёт доступа к соответствующему контент провайдеру, всё, что с ним можно — ловить broadcast при получении нового сообщения.
Пожалуйста, пофиксите уже наконец баг с размытым флэшем на retina-дисплее в OS X. Баг-репорт отправлял ещё в сентябре, DNA-8343. В 12й опере вы это уже делали, по идее, должно быть просто, к тому же, в хроме такой проблемы нет.
И я представил себе, как будет выглядеть файл размером 1 Мб на этих однобитных стикерах… Правда, для надёжности лучше написать значения битов на самих стикерах, и добавить дополнительные стикеры чётности или даже CRC.
p.s. долбаные ограничения из-за кармы, ну зачем так жестоко
Ну этот концепт невозможен в таком виде. Как минимум, надо решить 2 проблемы:
— Надо как-то обнаруживать и адресовать эти «флэшки», наклеенные на эту «шину». Сложно, но, вроде бы, решаемо.
— У этих «флэшек» должен быть какой-то контроллер, иначе ничего не получится. На этот контроллер надо подавать питание, но используя только оптическую связь это не получится сделать достаточно эффективно.
> но если понадобится передать кому-нибудь один файл, это можно будет сделать просто отклеив одну из флешек
Файловая система тоже своя и такая же невозможная, как этот концепт?
Во-вторых, на планшетах доступен многопользовательский режим. С недавнего времени (4.3, кажется) пользователям можно ставить ограничения — т.е. выбирать, в какие приложения они могут заходить, а в какие — нет. Идея в том, чтобы создать пользователя с нужными ограничениями (отключить ему настройки и браузер, например), а на админа поставить пароль. Приложение киоска разумно поставить в качестве лаунчера — таким образом уже можно перехватить кнопки back и home, а recents ничего страшного всё равно не сделает, потому что кроме лаунчера никаких приложений будет не запустить, а сам лаунчер там не показывается.
Разрешение receive SMS не даёт права удалять сообщения и вообще не даёт доступа к соответствующему контент провайдеру, всё, что с ним можно — ловить broadcast при получении нового сообщения.
p.s. долбаные ограничения из-за кармы, ну зачем так жестоко
— Надо как-то обнаруживать и адресовать эти «флэшки», наклеенные на эту «шину». Сложно, но, вроде бы, решаемо.
— У этих «флэшек» должен быть какой-то контроллер, иначе ничего не получится. На этот контроллер надо подавать питание, но используя только оптическую связь это не получится сделать достаточно эффективно.
Файловая система тоже своя и такая же невозможная, как этот концепт?