Galerie in Android-Handys starten

Ich versuche, die Galerie über meine App zu starten, wenn der Benutzer auf die Benachrichtigung klickt. Ich habe festgestellt, dass es nur möglich ist, wenn Sie das Paket und den Klassennamen der Gallery-App kennen. Ich habe es geschafft, dasselbe für vier Gerätehersteller zu finden, und bis jetzt funktioniert dieser Code. Ich benötige nur den Paket- und Klassennamen für Motorola- und LG-Android-Telefone.

Kann jemand helfen? Es ist sehr einfach für Sie, wenn Sie Entwickler sind und ein Motorola- oder LG-Android-Gerät besitzen. Sie müssen nur die Galerie in Ihrem Telefon starten, während Sie mit LogCat verbunden sind, und es wird der Paket- und Klassenname der Galerie angezeigt.

CODE:

Intent newIntent = new Intent();

//open Gallery in Nexus plus All Google based ROMs
if(doesPackageExist("com.google.android.gallery3d"))
    newIntent.setClassName("com.google.android.gallery3d", "com.android.gallery3d.app.Gallery");

//open Gallery in Sony Xperia android devices
if(doesPackageExist("com.android.gallery3d"))
    newIntent.setClassName("com.android.gallery3d", "com.android.gallery3d.app.Gallery");

//open gallery in HTC Sense android phones
if(doesPackageExist("com.htc.album"))                           
    newIntent.setClassName("com.htc.album", "com.htc.album.AlbumMain.ActivityMainCarousel");

//open gallery in Samsung TouchWiz based ROMs
if(doesPackageExist("com.cooliris.media"))
    newIntent.setClassName("com.cooliris.media", "com.cooliris.media.Gallery");

startActivity(newIntent);

Und um zu überprüfen, ob der Paketname existiert:

public boolean doesPackageExist(String targetPackage) {

    PackageManager pm = getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(targetPackage, PackageManager.GET_META_DATA);
    } catch (NameNotFoundException e) {
        return false;
    }
    return true;    
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage