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