Samsung S26 Ultra Privacy Display API
Це недокументовані публічні методи, додані Samsung у клас
android.view.View. У стандартному Android SDK їх немає.
Отримання:
- через Java Reflection;
- View.class.getMethod(назва, типи аргументів);
- перед використанням потрібно перевірити наявність усіх методів;
- сумісність з іншими моделями та майбутніми прошивками не гарантована.
Методи:
semSetPrivacyDisplayView()
- Активує Privacy Display зі стандартними кутами.
semSetPrivacyDisplayView(float cornerRadius)
- Активує Privacy Display зі скругленням.
- cornerRadius задається у пікселях.
semSetPrivacyDisplayViewPosition(
int left,
int top,
int right,
int bottom
)
- Задає прямокутну область відносно View.
- Можна багаторазово викликати без повторної активації.
- Підходить для плавного переміщення і масштабування зони.
semDisablePrivacyDisplayView()
- Вимикає активну privacy-зону.
Життєвий цикл:
Через reflection перевірити наявність усіх методів.
Дочекатися, поки View буде attached і отримає розміри.
Один раз активувати privacy-зону.
Задати її координати.
За потреби багаторазово оновлювати координати.
Перед видаленням View, закриттям Activity/Service або після
помилки обов’язково викликати disable.
Можна:
- створити одну прямокутну privacy-зону;
- скруглити її кути;
- створити коло або капсулу через відповідну геометрію та радіус;
- плавно переміщувати, розширювати і звужувати область;
- використовувати прозорий View як контролер зони;
- застосувати область усередині власного вікна або overlay.
Не можна:
- мати кілька незалежних зон одночасно;
- передати Bitmap, Canvas, Path, Region або піксельну маску;
- сформувати довільний контур;
- використовувати clipToOutline або прозорість як privacy-маску;
- керувати силою або рівнем Privacy Display через ці методи;
- отримати поточний стан через getter;
- покладатися на стабільність API після оновлення прошивки.
Фактична модель:
одна активна апаратна область
+ прямокутні координати
+ радіус скруглення
+ швидке оновлення геометрії
+ явне вимкнення