Фильтр намерений для обработки адреса пресс в контакт? - PullRequest
2 голосов
/ 03 февраля 2011

Люди, при просмотре контакта вы можете нажать на адрес, чтобы просмотреть этот адрес в приложении карты (например, Google Maps или VZW Navigator).Я хотел бы определить фильтр намерений таким образом, чтобы мое приложение отображалось в списке приложений, которые могут обрабатывать указанное намерение.Есть идеи?

Заранее спасибо.

Из logcat я вижу следующее из ActivityManager:

Starting activity: 
Intent { act=android.intent.action.VIEW dat=content://com.android.contacts/data/6792 cmp=android/com.android.internal.app.ResolverActivity }

Я пробовал несколько комбинаций фильтров намеренийнапример:

<intent-filter>
  <action android:name=”android.intent.action.View” />
  <category android:name=”android.intent.category.DEFAULT” />
  <category android:name=”android.intent.category.BROWSABLE” />
  <data android:scheme=”geo” />
</intent-filter>

<intent-filter>
  <action android:name=”android.intent.action.View” />
  <category android:name=”android.intent.category.DEFAULT” />
  <category android:name=”android.intent.category.BROWSABLE” />
  <data android:scheme=”content” android:host=”com.android.contacts” android:pathPattern=”/data/*” />
</intent-filter>

Ответы [ 4 ]

3 голосов
/ 22 июля 2012

в ICS вы должны использовать это:

        <intent-filter>
            <action android:name="android.intent.action.VIEW" /> 
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="geo" />
        </intent-filter>

Полученное намерение должно обрабатываться соответственно (по-разному).обратите внимание, что в ICS и с этим фильтром намерений вам не нужно специальное разрешение для чтения контактного адреса.

2 голосов
/ 10 февраля 2011

Решение, предоставляемое Google Developer Relations:

<intent-filter android:label="MyApp">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
</intent-filter>
1 голос
/ 30 июля 2013

для ранних версий Android я использовал

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/*" android:host="com.android.contacts" android:pathPrefix="/data" android:scheme="content"/>
        </intent-filter>
0 голосов
/ 03 февраля 2011

VIEW предполагается заглавными. Твой нет.

...