我开发了一个在Samsung Knox环境中工作的应用程序。由于Knox环境的限制,我需要应用程序以不同的方式响应,具体取决于它是在Knox容器中还是在Knox容器外部。应用程序如何以编程方式告诉它是否已部署在容器内?
答案 0 :(得分:2)
我有类似的问题,虽然我们的应用程序不能在Knox环境中工作,但是有些用户无论如何都会把它放在那里......所以我正在寻找类似的功能。我发现以下内容对您有所帮助。遗憾的是,它不起作用,因为它似乎仅在包含Knox Premium SDK时才起作用: https://seap.samsung.com/faq/how-does-app-detect-if-container-was-created
简而言之,有两种方法可以检查。在代码中调用它:
LazyLoadManager.getInstance(context).loadData(viewHolder, myModel);
或者将此添加到您的Manifest并添加一个Broadcast侦听器:
var jsDate = new Date(Date.UTC(2016, 1, 23, 13, 14, 15));
var fromated = $.format.date(Date.UTC(2016, 1, 23, 13, 14, 15), "yy,MM,dd,hh,mm,ss");
console.log("Date.UTC(" + fromated + ")"); //Date.UTC(16,02,23,06,44,15)
如果有人发现没有SDK的解决方案,我很有兴趣听到它。
答案 1 :(得分:0)
为了将来参考,这是我使用的:
public static boolean isKnoxCaller() {
int PER_USER_RANGE = 10000;
int user_id = Binder.getCallingUid() / PER_USER_RANGE;
return user_id >= 100 && user_id < 1000;
}