Я разработал приложение для работы в среде Samsung Knox. Из-за ограничений среды Knox мне нужно, чтобы приложение реагировало по-разному в зависимости от того, находится ли оно в контейнере Knox или вне его. Как приложение может определить программно, было ли оно развернуто внутри контейнера?
Как совместимое с Samsung Knox приложение определяет, находится ли оно в контейнере Knox?
Ответы (2)
У меня похожая проблема, хотя наше приложение НЕ предназначено для работы в среде Knox, но некоторые пользователи все равно помещают его туда... Поэтому я ищу аналогичную функцию. Я нашел следующее, что может вам помочь. К сожалению, для нас это не работает, так как работает только при включении Knox Premium SDK: https://seap.samsung.com/faq/how-does-app-detect-if-container-былсоздан
Короче, есть два способа проверить. Либо вызовите это в коде:
KnoxContainerManager.getContainers()
Или добавьте это в свой манифест и добавьте прослушиватель вещания:
<receiver
android:name=".receiver.KnoxContainerReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.samsung.knox.container.creation.status" />
</intent-filter>
</receiver>
public class KnoxContainerReceiver extends BroadcastReceiver{
@Override public void onReceive(Context context, Intent intent ){
//do something
}
}
Если кто-нибудь найдет решение, которое работает без SDK, мне очень интересно его услышать.
person
Kasium
schedule
20.01.2017
ссылка на самсунг мертва
- person Nick; 12.04.2018
Для дальнейшего использования, это то, что я использую:
public static boolean isKnoxCaller() {
int PER_USER_RANGE = 10000;
int user_id = Binder.getCallingUid() / PER_USER_RANGE;
return user_id >= 100 && user_id < 1000;
}
person
Daniel Grigoriev
schedule
10.07.2019