Итак, вот мой процесс:
keytool -list -v -keystore permanent.jks
- получил псевдоним.
keytool -export -alias alias_name -file certificate_name -keystore permanent.jks
- получил мне сертификат для импорта.
Тогда я мог бы импортировать его с помощью keytool:
keytool -import -alias alias_name -file certificate_name -keystore keystore location
Поскольку @Christian Bongiorno говорит, что псевдоним уже не существует в вашем хранилище ключей.
Я собираюсь сказать, что невозможно полностью предотвратить захват экрана / видео любого приложения Android с помощью поддерживаемых средств. Но если вы хотите заблокировать его только для обычных устройств Android, SECURE FLAG является существенным.
1) Защищенный флаг блокирует как обычный снимок экрана, так и видеозахват.
Также документация в этой ссылке говорит о том, что
Флажок окна: обрабатывать содержимое окна как безопасное, не позволяя ему появляться на скриншотах или от просмотра на незащищенных дисплеях.
Выше решение наверняка не позволит приложениям захватывать видео вашего приложения
См. ответ здесь .
2) Существуют альтернативные способы захвата содержимого экрана.
Возможно, будет возможно захватить экран другого приложения на корневом устройстве или с помощью SDK ,
, которые обе дают вам мало шансов, что вы либо заблокируете его, либо получите уведомление об этом.
Например: существует программное обеспечение для зеркального отображения вашего телефона экрана на ваш компьютер через SDK a nd, поэтому программное обеспечение для захвата экрана может быть использовано там, которое невозможно обнаружить в вашем приложении.
См. ответ здесь .
Кажется, вы знаете, как отключить скриншоты из вашего приложения, и есть другие ответы, которые помогут вам в этом. Но я постараюсь дать вам важную информацию, которую никто не дает вам.
1) У вас не может быть приложения, которое на 100% безопасно снимать с экрана (фото / видео). Существует нет официального пути , чтобы делать скриншоты в Android. Если приложение записывает экраны, то оно должно использовать некоторые не поддерживаемые методы (либо укоренение, либо использование SDK).
Существует очень мало возможностей для блокировки приложения, если он использует root-доступ к экранам записи.
2) Никто не упоминал об этой проблеме здесь, но будьте очень осторожны при использовании WindowManager.LayoutParams.FLAG_SECURE
. Он был проверен на многих устройствах (например, на Samsung Galaxy ACE, например GT-S5830), что делает весь вид скремблированным. Подобным образом,
[/g2]
Пожалуйста, поставьте такой флажок,
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
}
Он отлично работает на устройствах ICS, поэтому нет проблема там.
3) Я также узнал, что даже на более новых устройствах, таких как Android 4.3, это вызывает проблемы с анимацией при повороте экрана. Пожалуйста, проверьте этот отчет об ошибке.
Попробуйте следующее:
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
В соответствии с этим официальным руководством вы можете добавить WindowManager.LayoutParams.FLAG_SECURE
к вашему макету окна, и он будет запрещать скриншоты.
Вы можете сделать свое приложение владельцем устройства / профиля и вызвать setScreenCaptureDisabled()
. Из docs этот api выполняет следующее:
public void setScreenCaptureDisabled (имя_компьютера ComponentName, boolean disabled) Добавлено в уровень API 21
Вызывается владельцем устройства / профиля, чтобы установить, отключен ли захват экрана. Отключение захвата экрана также предотвращает показ содержимого на устройствах, которые не имеют защищенного видеовыхода. Подробнее о защищенных поверхностях и защищенных дисплеях см. FLAG_SECURE.
Администратор вызывающего устройства должен быть владельцем устройства или профиля. Если это не так, будет выведено исключение безопасности. Параметры admin Какой DeviceAdminReceiver связан с этим запросом. отключено. Если захват экрана отключен или нет.
В качестве альтернативы вы можете стать партнером MDM (Mobile Device Management) . Приложения предоставляют дополнительные API для своих партнерских приложений MDM для управления устройством. Например, samsung обеспечивает api для управления записью экрана на устройстве своим партнерам по MDM.
В настоящее время это единственный способ, которым вы можете применять ограничения захвата экрана.
о скриншоте фото, FLAG_SECURE не работает укорененное устройство. но если вы отслеживаете файл скриншота, вы можете предотвратить получение исходного файла.
попробуйте этот один . 1. мониторинг снимков экрана (монитор файлов) с помощью удаленной службы Android 2. удаление оригинального снимка экрана. 3. доставьте экземпляр растрового изображения, чтобы вы могли его изменить.
Чтобы отключить Screen Capture:
Добавьте следующую строку кода в метод onCreate()
:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
Чтобы включить Screen Capture:
Найти для LayoutParams.FLAG_SECURE
и удалите строку кода.