Няма открита дейност за обработка на намерение с http в URL адреса

Търсих и търсих и търсих с часове по този въпрос и не мога да намеря решение, което има някакъв смисъл за моя проблем. Просто се опитвам да отворя уеб страница от приложението си за 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: Няма открита активност за обработка на намерение { act=android.intent.action.VIEW dat=https://play.google.com/...

Всичко, което намерих онлайн, казва абсолютно едно и също нещо... Вашият url не съдържа частта „http://“, така че не успя, но можете да видите, че моят url съдържа частта „https://“ от URL адрес. Това е пълен URL, мога да го напиша в прозорец на браузъра и страницата се отваря перфектно. Не разбирам как може да няма дейност за обработка на Intent.ACTION_VIEW. Нямам представа къде да отида сега, тъй като всичко онлайн казва, че добавете „http://“ към URL адреса и ще работи, но не става. Освен това имам

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

в моя манифестен файл. Всяка помощ ще бъде оценена, това ме подлудява. Благодаря ти


person Neglected Sanity    schedule 29.08.2018    source източник
comment
Не се нуждаете от разрешение за интернет, за да стартирате други приложения, дори когато случайно отговарят на URL адреси.   -  person zapl    schedule 29.08.2018


Отговори (1)


Насочвате се към конкретен пакет

intent.setPackage(getPackageName());

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

person Zachary Sweigart    schedule 29.08.2018
comment
Красив! Благодаря ти. Бях получил този фрагмент от страницата за разработчици на Android за това как да стартирам playstore, свързващ вашето приложение или страница за разработчици. - person Neglected Sanity; 30.08.2018