我在我的应用程序中使用 Wikiitude API 1.1 作为 AR 查看器。Wikitude 的问题是,如果我在手机启动后还没有启动实际的 Wikitude 应用程序,那么每次启动我自己的应用程序时都会收到 NullPointerException。
所以我想我是否可以先启动我的应用程序,然后他们检查 Wikiitude 是否已安装和/或运行。如果没有安装,去market n下载。如果它没有运行,那么我们应该直接将它运行到后台,这样我的应用程序就不会失去焦点。
// Workaround for Wikitude
this.WIKITUDE_PACKAGE_NAME = "com.wikitude";
PackageManager pacMan = Poligamy.this.getPackageManager();
try {
PackageInfo pacInfo = pacMan.getPackageInfo(this.WIKITUDE_PACKAGE_NAME, pacMan.GET_SERVICES);
Log.i("CheckWKTD", "Wikitude is Installed");
ActivityManager aMan = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningApps = aMan.getRunningAppProcesses();
int numberOfApps = runningApps.size();
for(int i=0; i<numberOfApps; i++) {
if(runningApps.get(i).processName.equals(this.WIKITUDE_PACKAGE_NAME)) {
this.WIKITUDE_RUNNING = 1;
Log.i("CheckWKTD", "Wikitude is Running");
}
}
if(this.WIKITUDE_RUNNING == 0) {
Log.i("CheckWKTD", "Wikitude is NOT Running");
/*final Intent wIntent = new Intent(Intent.ACTION_MAIN, null);
wIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("com.wikitude",
"com.mobilizy.wikitudepremium.initial.Splash");
wIntent.setComponent(cn);
wIntent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivityIfNeeded(wIntent, 0);*/
}
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
Log.i("CheckWKTD", "Wikitude is NOT Installed");
e.printStackTrace();
//finish();
}
我阻止评论的部分是启动 Wikitude 的意图。但我总是未能将 Wikiitude 限制在后台。有什么帮助吗?之前谢谢。
最好的,蒂斯塔