Начало намерения запустить приложение в фоновом режиме в Android - PullRequest
3 голосов
/ 16 мая 2010

Я использую Wikitude API 1.1 в качестве приложения для просмотра AR в своем приложении. Проблема с Wikitude: если я не запустил реальное приложение Wikitude с момента загрузки телефона, я получу исключение NullPointerException при каждом запуске собственного приложения.

Итак, я понимаю, могу ли я сначала запустить свое приложение, а они проверяют, установлен ли Wikitude и работает ли он. Если он не установлен, перейдите в магазин и скачайте его. Если он не запущен, мы должны запустить его прямо в фоновом режиме, чтобы мое приложение не потеряло фокус.

    // 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. Но мне всегда не удавалось ограничить Wikitude фоном. Любая помощь? Спасибо, прежде чем.

Лучший, Tista

1 Ответ

1 голос
/ 16 мая 2010

Нет такой вещи, как "запустить его прямо на заднем плане".

Я бы сосредоточился на исправлении вашего NullPointerException, связавшись с WIKITUDE и выяснив, почему вы получаете его, если их приложение еще не запущено.

...