Не найдена активность для обработки намерений с http в URL - PullRequest
0 голосов
/ 29 августа 2018

Я искал, искал и искал часами по этому вопросу и не могу найти решение, которое имеет какой-либо смысл для моей проблемы. Я просто пытаюсь открыть веб-страницу из моего приложения для Android. Должно быть просто, но я продолжаю получать ошибку No Activity found и приложение вылетает. Мой код очень прост для этого ...

AboutActivity

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_about);
  Button appsButton = findViewById(R.id.about_button);
  appsButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse(Keys.MARKET_LINK));
      intent.setPackage(getPackageName());
      startActivity(intent);
    }
  });
}

в моем классе ключей ...

public static final String MARKET_LINK = "https://play.google.com/store/apps/dev?id=<MY ID>";

Каждый раз, когда я нажимаю кнопку «aboutButton» в приложении, я получаю сообщение об ошибке ...

android.content.ActivityNotFoundException: не найдено действий для обработки Intent {act = android.intent.action.VIEW Дат = https://play.google.com/...

Все, что я нашел в Интернете, все говорит об одном и том же ... Ваш URL не содержал части "http://"", поэтому произошел сбой, но вы можете видеть, что мой URL содержит часть "https://" URL , Это полный URL, я могу набрать его в окне браузера, и страница открывается идеально. Я не понимаю, как он не может иметь активность для обработки Intent.ACTION_VIEW. Я понятия не имею, куда идти, так как все, что в сети говорит, добавьте «http://" к URL-адресу, и это будет работать, но это не так. Кроме того, у меня есть

<uses-permission android:name="android.permission.INTERNET />

в моем файле манифеста. Любая помощь будет оценена, это сводит меня с ума. Спасибо

1 Ответ

0 голосов
/ 29 августа 2018

Вы нацеливаетесь на конкретный пакет с

intent.setPackage(getPackageName());

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...