0

Ich habe eine Galerie App erstellt. Es öffnet Bilder und Fotos, aber System ist nicht als Galerie-App zu bekommen. Könnte mir jemand helfen, es als Galerie-App zu setzen? Vielen Dank!So erstellen Sie eine Android-Galerie App

+0

**-System ist nicht bekommen als Galerie App ** bedeutet? –

Antwort

0

sollten Sie verwenden Intents and Intents Filters

In dem obigen Link Sie „Empfangen eine implizite Absicht“ lesen sollten

Um die impliziten Absichten Ihre App zu werben erhalten, erklärt einen oder mehrere Absicht Filter für jeden Ihrer App-Komponenten mit einem Element in Ihrer Manifestdatei. Jeder Intent-Filter gibt den Intent-Typ an, der basierend auf der Aktion, den Daten und der Kategorie des Intents akzeptiert wird. Das System übermittelt Ihrer App-Komponente nur dann eine implizite Absicht, wenn die Absicht einen Ihrer Intent-Filter passieren kann.

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

^der Code oben (aus der Dokumentation entnommen) zeigt, wie sicher offen Ihre Anwendung zu machen, wenn andere Verwendung Aktivität Absicht SENDEN.

Ändern Sie die Aktion und MimeType, um die gewünschte Wiederherstellung zu erhalten (Foto senden ?, Foto anzeigen? Usw.).

1

Update Manifest, Diese anderen Anwendungen sagen Inhalt

<activity android:name=".ui.MyActivity" > 
<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="text/plain" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.SEND_MULTIPLE" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 

Behandeln Sie den eingehenden Inhalt zu empfangen.

void onCreate (Bundle savedInstanceState) { 

// Get intent, action and MIME type 
Intent intent = getIntent(); 
String action = intent.getAction(); 
String type = intent.getType(); 

if (Intent.ACTION_SEND.equals(action) && type != null) { 
    if ("text/plain".equals(type)) { 
     handleSendText(intent); // Handle text being sent 
    } else if (type.startsWith("image/")) { 
     handleSendImage(intent); // Handle single image being sent 
    } 
} else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null)  { 
    if (type.startsWith("image/")) { 
     handleSendMultipleImages(intent); 
// Handle multiple images being sent 
    } 
} else { 
    // Handle other intents, such as being started from the home screen 
} 

} 

void handleSendText(Intent intent) { 
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT); 
if (sharedText != null) { 
    // Update UI to reflect text being shared 
} 
} 

void handleSendImage(Intent intent) { 
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); 
if (imageUri != null) { 
    // Update UI to reflect image being shared 
} 
} 

void handleSendMultipleImages(Intent intent) { 
ArrayList<Uri> imageUris =    intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); 
if (imageUris != null) { 
    // Update UI to reflect multiple images being shared 
} 
} 

offizielle Dokumentation: https://developer.android.com/training/sharing/receive.html

Verwandte Themen