Захватывает поиск рынка намерений? - PullRequest
6 голосов
/ 08 января 2010

Я пытаюсь поймать цель поиска в Android Market.

Так вы запускаете Android Market и ищете приложение по имени пакета:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:com.google.somepackage")));

Теперь вот фильтр намерений для одного из моих действий:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="market" android:host="search" />
</intent-filter>

Я ожидаю, что Android спросит меня, какое приложение должно обрабатывать намерение, а не -.
Тем не менее, если я заменю market на market1 или search на search1, в обоих местах моя деятельность будет запущена.
Есть понятие «неприкасаемых» намерений или что-то?

ТИА.

1 Ответ

9 голосов
/ 08 января 2010

Это действительно странно, и вроде как идет вразрез со всей системой открытых намерений. Я знаю, что есть трансляции, которые может создавать только система, но я не слышал о таких вещах для умышленного разрешения.

В любом случае, я просто сбросил Market APK на своем HTC Hero и проверил манифест. Они немного более конкретны в своем URI-сопоставлении, добавив путь:

<intent-filter android:priority="100">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" 
          android:host="market.android.com" android:path="/search" />
    <data android:scheme="market"
          android:host="search" android:path="" />
</intent-filter>

Тем не менее, я попытался добавить это в свое приложение, за исключением того, что увеличил значение приоритета ( не то, что я видел, какой-либо эффект до ), но все же я не смог захватить Intent .

Надеюсь, кто-то (или AOSP) сможет пролить свет на ситуацию ...

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