2011-12-24 12 views
11

Chcę, aby moja aplikacja na Androida pojawiła się jako opcja, gdy użytkownik udostępnia URL z innej aplikacji (takiej jak przeglądarka). Jak mogę zarejestrować moją aplikację, aby to zrobić? Jak mogę zareagować na powiązanie udziałów?Uczyń z aplikacji na Androida, aby odsłuchać udostępnione linki.

Wielkie dzięki.

Edit:

Próbowałem za pomocą IntentFilter jak to bez powodzenia:

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

Jakieś pomysły?

Odpowiedz

22

Na bardzo minimum potrzebne są:

<activity android:name=".ShareActivity"> 
    <intent-filter 
     android:label="Share with my app"> 
     <action android:name="android.intent.action.SEND" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

w swoim manifeście ... który będzie przynajmniej sprawiają, że pojawiają się w „akcji” aukcji.

Najważniejszą częścią brakuje to:

<action android:name="android.intent.action.SEND" /> 

Żeby było rzeczywiście coś zrobić, potrzebny jest aktywny.

To może pomóc też: http://sudarmuthu.com/blog/sharing-content-in-android-using-action_send-intent

Informacje dodatkowe:

<activity android:name=".ShareActivity"> 
<intent-filter 
    android:label="Share with my app"> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="text/plain" /> 
</intent-filter> 
</activity> 

tam <data android:mimeType ograniczy co odpowiedzieć, jeśli chcesz ograniczyć swojej aplikacji odpowiedź.

+0

Dzięki, że rejestruje mój aplikację, która ma być wyświetlana, gdy udostępniam adres URL. Jednak opublikowany artykuł nie zawiera odpowiedzi na pytanie, kiedy inna aplikacja udostępnia adres URL mojej aplikacji. Na razie moja aplikacja jest otwarta, jak zwykle, nic specjalnego się nie dzieje. Jak mogę odzyskać udostępniony adres URL? –

+3

Twoje pytanie, jak je wyświetlić. Możesz zaakceptować to jako odpowiedź i zamieścić kolejne pytanie wzdłuż linii "pobierz udostępniony adres URL z Android.intent.action.SEND intent" Po prostu myśl. – TryTryAgain

+2

A może nie: http://www.vogella.de/articles/AndroidIntent/article.html#explicitintents jest tym, czego szukasz - powinieneś przynajmniej zagłosować, ponieważ było to pomocne, mimo że zapewniało rozwiązanie na twoje pytanie. – TryTryAgain

0

Musisz utworzyć działanie z odpowiednim filtrem intencji. Przeczytaj dokumentację na temat Intent, objaśnia to wszystko na przykładach.

1

Aby uzyskać obraz w swojej działalności, należy Uri imgUri = (Uri) i.getParcelableExtra(Intent.EXTRA_STREAM); dla pojedynczego obrazu lub użyj ArrayList<Uri> imgUris = i.getParcelableArrayListExtra(Intent.EXTRA_STREAM); na liście obrazów:

Intent i = getIntent(); 
Bundle extras = i.getExtras(); 
String action = i.getAction(); 

// if this is from the share menu 
if (Intent.ACTION_SEND.equals(action)) { 
    if (extras.containsKey(Intent.EXTRA_STREAM)) { 
     Uri imgUri = (Uri) i.getParcelableExtra(Intent.EXTRA_STREAM); 
     // Do job here 
    } 
} 

nadzieję, że pomoże

+0

Nie mogę uzyskać funkcji Intent.ACTION_SEND.equals (akcja) do pracy. getAction zwraca null. – Sulby

Powiązane problemy