Android Android-Entwicklung: Erhalten Sie eine Liste von Apps, die auf dem Telefon geteilt werden können

1. Konfigurationselemente

Fügen Sie in der Konfigurationsdatei AndroidManifest.xml den folgenden Inhalt hinzu:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    //...

    <queries>
        <intent>
            <action android:name="android.intent.action.SEND"/>
            <data android:mimeType="text/plain"/>
        </intent>
    </queries>

    //...
</manifest>

Beachten Sie Folgendes in den oben genannten Konfigurationselementen:

<data android:mimeType="text/plain"/>

Der mimeType kann je nach Bedarf auf andere Werte angepasst werden:

Text/einfach

Bild/PNG

*/*

Warten Sie, listen Sie sie nicht einzeln auf

Zweitens: Java-Implementierung

Mit der oben genannten Konfiguration können Sie es direkt über den Code erhalten:

public List<ResolveInfo> getShareApps(Context context) {
    List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();
    Intent intent = new Intent(Intent.ACTION_SEND, null);
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    intent.setType("text/plain");
    PackageManager pManager = context.getPackageManager();
    mApps = pManager.queryIntentActivities(intent,PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
    return mApps;
}

Die erhaltene Sammlung, deren Elemente Beispiele der ResolveInfo-Klasse sind, kann den gewünschten Inhalt über die folgenden Methoden erhalten:

resolveInfo.activityInfo.name //launcher class名称
resolveInfo.activityInfo.packageName //package包名
resolveInfo.loadLable(context.getPackageManager()).toString() //应用名
resolveInfo.loadIcon(context.getPackageManager()) //图标

Supongo que te gusta

Origin blog.csdn.net/freezingxu/article/details/125725748
Recomendado
Clasificación