Phonegap:如何检测android应用程序在开发模式下运行
我需要区分我的Phonegap Android应用程序是否正在运行 A) 通过USB调试模式在模拟器或手机中 B) 通常在电话里Phonegap:如何检测android应用程序在开发模式下运行,android,cordova,configuration,Android,Cordova,Configuration,我需要区分我的Phonegap Android应用程序是否正在运行 A) 通过USB调试模式在模拟器或手机中 B) 通常在电话里 有可能吗?你知道什么把戏吗?我需要这个在devel和prod之间自动切换配置。。。谢谢。是的,有些平台允许在运行时进行包内省 在Android上,本机库是链接到文档的。你是否能从界面上得到你需要的信息(希望)会被记录下来 目前没有从phonegap javascript环境访问此信息的插件或api。然而,这很容易实现 我可能愿意组装这样一个插件。这将是相对简单和潜在的
有可能吗?你知道什么把戏吗?我需要这个在devel和prod之间自动切换配置。。。谢谢。是的,有些平台允许在运行时进行包内省 在Android上,本机库是链接到文档的。你是否能从界面上得到你需要的信息(希望)会被记录下来 目前没有从phonegap javascript环境访问此信息的插件或api。然而,这很容易实现 我可能愿意组装这样一个插件。这将是相对简单和潜在的有用。或者我可以帮你完成这个过程 编辑 是的,此信息可用,下面是一个片段:
if ((ctx.getPackageManager().getPackageInfo(
ctx.getPackageName(), 0).applicationInfo.flags &
ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
//Debug and development mode
BASE_SERVICE_URL = "http://qa.example.com";
}
我在上找到了上面的代码,您可以使用调用任意API。因此,Lorenzo的代码可以用JavaScript编写,如下所示:
var ctx = ace.android.getContext();
ctx.invoke("getPackageManager", function (pm) {
ctx.invoke("getPackageName", function (name) {
pm.invoke("getPackageInfo", name, 0, function (info) {
info.getField("applicationInfo", function (appInfo) {
ace.NativeObject.getField("android.content.pm.ApplicationInfo", "FLAG_DEBUGGABLE", function(DEBUGGABLE) {
appInfo.getField("flags", function (flags) {
if (flags & DEBUGGABLE != 0) {
// Debug and development mode
BASE_SERVICE_URL = "http://qa.example.com";
}
});
});
});
});
});
});