Ich hoffe, dass einer von euch feine Leute in der Lage sein kann, mir mit einem kleinen Problem zu helfen, das ich mit Android Intent.createChooser() habe. Ich lerne, während ich mit meiner Anwendung gehe, also entschuldige ich mich, wenn ich das falsche Ende des Stocks habe mit wie das funktionieren sollte!Android CreateChooser erscheint vor Aktivität
Ich habe eine Reihe von Tutorials verfolgt und Code implementiert, der eine Intent.createChooser() startet, um ein Bild auf Social Media zu teilen. Der Code, den ich verwendet habe, funktioniert gut, da ich das Bild wie vorgesehen teilen kann. Mein Problem ist, dass beim Ausführen des Codes meine Hauptaktivität (oder irgendeine Aktivität, von der ich den Code nenne) zu schließen scheint und die Auswahl erscheint vor dem Homescreen oder anderen Anwendungen, die ich geöffnet habe. Der Effekt, den ich mir erhoffte, und der, der in den Tutorials offensichtlich zu sein schien, ist, dass der Chooser vor der laufenden Aktivität erscheint (zB wie in der Galerie).
Ich verwende LibGDX, was bedeutet, dass ich eine Schnittstelle verwenden musste, um die Android-Funktion aufzurufen, die den Auswahlcode ausführt (in meiner AndroidLauncher-Java-Datei). Die Schnittstellen funktionieren alle gut, aber ich war mir nicht sicher, ob das einen Einfluss auf die Funktionsweise dieses Codes haben könnte. Ich habe auch mit dem Wechsel zu einer neuen Aktivität herumgespielt, um den Auswahlcode zu implementieren, den ich vom AndroidLauncher verschoben hatte. Dies hatte das gleiche Endergebnis.
Irgendwelche Ratschläge, wie man den chooser vor meiner Anwendung erscheinen lässt, würde sehr geschätzt werden! Der Code, der die createChooser implementiert ist unten enthalten:
public void ShareHandler(){
String type = "image/*";
String mediaPath = Environment.getExternalStorageDirectory().getPath()+"/Smile.png";
createShareIntent(type, mediaPath);
}
private void createShareIntent(String type, String mediaPath)
{
Intent share = new Intent(Intent.ACTION_SEND);
share.setType(type);
File media = new File(mediaPath);
Uri uri = Uri.fromFile(media);
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share to"));
}
Android Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.game"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/GdxTheme">
<activity
android:name=".AndroidLauncher"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".FacebookServiceHandler" />
<meta-data
android:name="come.facebook.sdk.ApplicationID"
android:value="@string/facebook_app_id" />
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProviderxxxxxxxxxxxxx"
android:exported="true" />
</application>
</manifest>
Vielen Dank im Voraus, Ben.
Kannst du die Androidmanifest.xml posten, die wahrscheinlich Dinge klären würde. – Alex
Mit der AndroidManifest.xml wie gewünscht aktualisiert. –
Woher rufst du 'createShareIntent'? Ist das ShareHandler ein android.os.Handler? – Tenfour04