Запуск внешнего приложения из моего приложения не работает для некоторых приложений

Я разрабатываю приложение для Android, которое, помимо прочего, запускает другие приложения на устройстве. Вот код, который я использую, когда хочу запустить внешнее приложение:

    fun openApp(context: Context, appName: String, packageName: String) {
        if (isAppInstalled(context, packageName))
            if (isAppEnabled(context, packageName)) {
                context.startActivity(context.packageManager.getLaunchIntentForPackage(packageName))
            }
            else
                Toast.makeText(context, "$appName app is not enabled.", Toast.LENGTH_SHORT).show()
        else
            Toast.makeText(context, "$appName app is not installed.", Toast.LENGTH_SHORT).show()
    }

    private fun isAppInstalled(context: Context, packageName: String): Boolean {
        val pm = context.packageManager
        try {
            pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES)
            return true
        } catch (ignored: PackageManager.NameNotFoundException) {
        }

        return false
    }

    private fun isAppEnabled(context: Context, packageName: String): Boolean {
        var appStatus = false
        try {
            val ai = context.packageManager.getApplicationInfo(packageName, 0)
            if (ai != null) {
                appStatus = ai.enabled
            }
        } catch (e: PackageManager.NameNotFoundException) {
            e.printStackTrace()
        }

        return appStatus
    }
}

Некоторые приложения будут запускаться без проблем, а другие (например, Google Play Music) вызовут следующую ошибку:

Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference

Я нашел несколько других обсуждений, связанных с этой проблемой здесь и здесь, которые предполагают, что это связано с сервисами Google Play, но, по-видимому, было исправлено много версий назад (все приложения обновлены на сегодняшний день). Есть ли у кого-нибудь представление о том, что может заставить одни приложения запускаться правильно, а другие нет?

Изменить: как я указал выше, я знаю об исправлениях, которые обсуждались ранее, но все мои приложения (включая службы Google Play версии 12.8.74) обновлены, поэтому эти исправления не помогают.

Возможный дубликат Intent.migrateExtraStreamToClipData () для ссылки на нулевой объект

Martin Zeitler 10.08.2018 18:08

Ваша версия Сервисов Google Play> = 9.4.0? (добавьте версию к вашему вопросу)

BryanH 10.08.2018 19:52

Да: сервисы Google Play версии 12.8.74

Matti Granovsky 11.08.2018 15:19
0
3
340
0

Другие вопросы по теме