在Android手机启动图库(Launching Gallery in android phones

2019-07-02 14:39发布

我想,当用户点击该通知,从我的应用程序启动画廊。 我发现,这是唯一可能的,如果你知道包和图库应用程序的类名。 我设法找到四个设备制造商一样,到目前为止,此代码的工作。 我只需要为摩托罗拉和LG的Android手机的包和类名。

任何人都可以帮忙吗? 如果你是一个开发者和拥有摩托罗拉或LG的Android设备,是对你来说很容易。 你只需要在您的手机推出,而画廊连接到logcat的,它会显示在画廊的包和类名。

码:

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);

并检查包名称存在:

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;    
}

Answer 1:

您应该能够通过一个基本的启动图库应用Intent是这样的:

Intent intent =  new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivity(intent);

如果不止一个应用程序能够让你显示图像(如画廊和ESFileExplorer)它可能会触发应用程序选择器。



Answer 2:

没有描述每个Android设备上的“画廊”应用程序万能表,所以最好的,你可以做,以避免显示使用者的活动解析器是列出所有可能的活动处理的程序和作出明智的猜测哪一个推出。

PackageManager.queryIntentActivities变成一个Intent成包的这样一个清单,只要你播种意向与要打开的文件类型:

Intent newIntent = new Intent(Intent.ACTION_VIEW);
newIntent.setType("image/*");
List<ResolveInfo> allHandlers = pm.queryIntentActivities(newIntent, PackageManager.MATCH_DEFAULT_ONLY);

然后,您可以拖网此列表称为包(从你的列表上方),或做不到这一点,在启动列表中的第一个。

然而,你应该考虑自己的平凡的活动来显示图像。 这是获得控制你所寻求的水平的唯一途径。



文章来源: Launching Gallery in android phones