Android 11, функция PackageManager.resolveActivity() возвращает значение null

#android #android-intent #android-manifest #android-11

Вопрос:

Он используется packageManager.resolveActivity для проверки активности при получении уведомления FCM и подготовке Intent (поэтому startActivity() прямой вызов отсутствует).

Он работает в другой версии ОС, но не на Android 11, packageManager.resolveActivity возвращает значение null:

 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.yahoo.com"));
 ResolveInfo info = packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
 

следуя https://developer.android.com/training/package-visibility/use-cases#open-urls-browser-or-other-app,

добавлено в манифест:

 <queries>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <!-- <data android:scheme="*" /> --> //<== with or without this line it is the same
        </intent>
    </queries>
 

Однако он по-прежнему возвращает значение null.

Есть какие-нибудь предложения/решения?

Комментарии:

1. Что произойдет, если вы используете <data android:scheme="https" /> ?

2. @CommonsWare, использовал «https» для схемы, сначала она тоже не работала.

3. Раздел примера <queries> в документах Android немного отличается, в нем есть category элемент, вы пробовали его добавить? developer.android.com/training/package-visibility/…