Мое приложение хочет открыть веб-ссылку (например, https://www.google.com) с помощью этого метода:
public void openUrl(Activity activity, String urlParam) {
String url = Uri.encode(urlParam);
Intent browserIntent = new Intent(Intent.CATEGORY_BROWSABLE, Uri.parse(url));
browserIntent.setAction(ACTION_VIEW);
activity.startActivity(browserIntent);
}
Я получаю эту ошибку:
android .content.ActivityNotFoundException: не найдено ни одного действия для обработки намерения {act = android .intent.action.VIEW dat = https://www.google.com}
Если я заставлю приложение вызвать пользователя, который выбирает приложение, на устройстве появится сообщение о том, что ни одно приложение не может обработать действие.
startActivity(Intent.createChooser(intent, "Browse with"));
Итак, это также не работает.
Это очень странно, я вижу много похожих вопросов, но нет решения. URL-адрес правильный.
Это файл Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
Как это возможно? У меня есть другое приложение, которое использует аналогичный код, и оно может вызвать браузер для отображения URL на том же устройстве.
Вот его файл Gradle:
apply plugin: 'android'
android {
//noinspection GradleCompatible
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.myappname.app"
versionCode 62
minSdkVersion 19
targetSdkVersion 28
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:28.0.0'
}
Как решить вопрос