сбой приложения во время установки пакета chcking или нет - PullRequest
0 голосов
/ 11 января 2019

я использую этот код, чтобы проверить, установлен ли на устройстве пакет com.farsitel.bazaar или нет

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {


        if (isPackageInstalled("com.farsitel.bazaar")) {
            // Bazar is installed
            try {
                mHelper.launchPurchaseFlow(MainActivity.this, SKU_PREMIUM1, RC_REQUEST, mPurchaseFinishedListener, "payload-string");
            }
            catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(MainActivity.this,
                        "پرداخت موفق نبود لطفا دوباره سعی کنید", Toast.LENGTH_SHORT).show();
            }
        }
        else {
            Toast.makeText(MainActivity.this,
                    "لطفا برنامه کافه بازار را نصب کنید", Toast.LENGTH_SHORT).show();
            // not installed
        }

    }
}, 2000);





public boolean isPackageInstalled(String PackageName) {
    PackageManager manager = getPackageManager();
    boolean isAppInstalled = false;
    try {
        manager.getPackageInfo(PackageName, PackageManager.GET_ACTIVITIES);
        isAppInstalled = true;
    }
    catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return isAppInstalled;
}

при установке пакета все исправно и без ошибок, но когда пакет не установлен, приложение аварийно завершает работу со следующей ошибкой в ​​журнале:

01-11 10:24:09.646 1048-1720/? E/msm8974_platform: platform_check_backends_match: Invalid snd_device = 

01-11 10: 24: 09.646 1048-1720 /? E / msm8974_platform: platform_check_backends_match: неверный snd_device = 01-11 10: 24: 09.646 1048-1720 /? E / audio_hw_primary: enable_snd_device: введите 2 01-11 10: 24: 09.647 1048-1720 /? E / msm8974_platform: platform_get_snd_device_backend_index: BE Таблица имен DAI отсутствует 01-11 10: 24: 09.647 1048-1720 /? E / audio_hw_utils: send_app_type_cfg_for_device: не удалось получить внутренний индекс для snd-устройства, защищенного динамиком ret = -14 01-11 10: 24: 09.649 1048-1720 /? E / ACDB-LOADER: Ошибка: ACDB AudProc vol возвращено = -19 01-11 10: 24: 09.649 27577-27577 /? E / IabHelper: ошибка биллинга в приложении: недопустимое состояние для операции (queryInventory): помощник IAB не настроен. 01-11 10: 24: 09.652 27577-27577 /? E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: главная Процесс: ir.omino.sorkho, PID: 27577 java.lang.IllegalStateException: помощник IAB не настроен. Невозможно выполнить операцию: queryInventory at ir.omino.sorkho.Utils.IabHelper.checkSetupDone (IabHelper.java:782) at ir.omino.sorkho.Utils.IabHelper.queryInventoryAsync (IabHelper.java:610) at ir.omino.sorkho.Utils.IabHelper.queryInventoryAsync (IabHelper.java:639) at ir.omino.sorkho.MainActivity $ 50.onIabSetupFinished (MainActivity.java:2696) at ir.omino.sorkho.Utils.IabHelper.startSetup (IabHelper.java:274) at ir.omino.sorkho.MainActivity.buy4 (MainActivity.java:2687) at ir.omino.sorkho.MainActivity $ 9.onClick (MainActivity.java:667) на android.view.View.performClick (View.java:6274) на android.view.View $ PerformClick.run (View.java:24859) на android.os.Handler.handleCallback (Handler.java:789) на android.os.Handler.dispatchMessage (Handler.java:98) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6710) в java.lang.reflect.Method.invoke (родной метод) на com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:770) 01-11 10: 24: 09.654 27577-27577 /? E / Pushe: исключение поймано java.lang.IllegalStateException: помощник IAB не настроен. Невозможно выполнить операцию: queryInventory at ir.omino.sorkho.Utils.IabHelper.checkSetupDone (IabHelper.java:782) at ir.omino.sorkho.Utils.IabHelper.queryInventoryAsync (IabHelper.java:610) at ir.omino.sorkho.Utils.IabHelper.queryInventoryAsync (IabHelper.java:639) at ir.omino.sorkho.MainActivity $ 50.onIabSetupFinished (MainActivity.java:2696) at ir.omino.sorkho.Utils.IabHelper.startSetup (IabHelper.java:274)at ir.omino.sorkho.MainActivity.buy4 (MainActivity.java:2687) at ir.omino.sorkho.MainActivity $ 9.onClick (MainActivity.java:667) на android.view.View.performClick (View.java:6274) на android.view.View $ PerformClick.run (View.java:24859) на android.os.Handler.handleCallback (Handler.java:789) на android.os.Handler.dispatchMessage (Handler.java:98) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6710) в java.lang.reflect.Method.invoke (родной метод) на com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:770) 01-11 10: 24: 10.335 2182-2435 /? E / PBSessionCacheImpl: sessionId [9598084607418021] не сохранен. 01-11 10: 24: 16.271 1048-1720 /? E / msm8974_platform: platform_check_backends_match: неверный snd_device = 01-11 10: 24: 16.271 1048-1720 /? E / msm8974_platform: platform_check_backends_match: неверный snd_device = 01-11 10: 24: 16.271 1048-1720 /? E / audio_hw_primary: enable_snd_device: введите 2 01-11 10: 24: 16.272 1048-1720 /? E / msm8974_platform: platform_get_snd_device_backend_index: BE Таблица имен DAI отсутствует 01-11 10: 24: 16.272 1048-1720 /? E / audio_hw_utils: send_app_type_cfg_for_device: не удалось получить внутренний индекс для snd-устройства, защищенного динамиком ret = -14 01-11 10: 24: 16.272 1048-1720 /? E / ACDB-LOADER: Ошибка: ACDB AudProc vol возвращено = -19 01-11 10: 24: 16,332 1514-2301 /? E / ConnectivityService: Удалено исключение RemoteException при попытке отправить сообщение обратного вызова для NetworkRequest [LISTEN id = 844, [Возможности: INTERNET & NOT_RESTRICTED & TRUSTED & NOT_VPN & FOREGROUND]] 01-11 10: 24: 16.347 1514-13472 /? E / ActivityManager: applyOptionsLocked: Неизвестный animationType = 0 01-11 10: 24: 17.233 1073-27753 /? E / MediaExtractor: трассировка подключения 0xea661380 0xea674c00 01-11 10: 24: 17,473 1157-19681 /? E / OMXNodeInstance: setConfig (0xe69f56e0: google.mp3.decoder, ConfigPriority (0x6f800002)) ОШИБКА: не определено (0x80001001) 01-11 10: 24: 17,474 1157-19681 /? E / OMXNodeInstance: setConfig (0xe69f56e0: google.mp3.decoder, ConfigPriority (0x6f800002)) ОШИБКА: не определено (0x80001001) 01-11 10: 24: 17,474 1157-7510 /? E / OMXNodeInstance: getConfig (0xe69f56e0: google.mp3.decoder, ConfigAndroidVendorExtension (0x6f100004)) ОШИБКА: не определено (0x80001001) 01-11 10: 24: 17.907 27722-27764 / ir.omino.sorkho E / Volley: [8068] NetworkDispatcher.processRequest: необработанное исключение java.lang.NullPointerException: попытка вызвать виртуальный метод int java.lang.String.length () 'на нулевой ссылке на объект java.lang.NullPointerException: попытка вызвать виртуальный метод int java.lang.String.length () для нулевой ссылки на объект на java.net.URLEncoder.encode (URLEncoder.java:204) на com.android.volley.Request.encodeParameters (Request.java:491) на com.android.volley.Request.getBody (Request.java:477) в com.android.volley.toolbox.HurlStack.addBodyIfExists (HurlStack.java:245) в com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest (HurlStack.java:219) на com.android.volley.toolbox.HurlStack.executeRequest (HurlStack.java:97)на com.android.volley.toolbox.BasicNetwork.performRequest (BasicNetwork.java:131) в com.android.volley.NetworkDispatcher.processRequest (NetworkDispatcher.java:120) на com.android.volley.NetworkDispatcher.run (NetworkDispatcher.java:87) 01-11 10: 24: 18.195 27722-27722 / ir.omino.sorkho E / Запустить ожидающие услуги: 0 01-11 10: 24: 18,287 656-656 /? E / HWComposer: presentAndGetReleaseFences: не удалось отобразить 0: NotValidated (7)

как я могу предотвратить взлом, когда пакет не установлен ??

...