这是我在主要活动中的代码..
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bClock = (Button) findViewById(R.id.buttonSearch);
bClock.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String packageName = "com.android.gallery3d";
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
if(intent == null) {
Intent marketIntent = new Intent(Intent.ACTION_VIEW);
marketIntent.setData(Uri.parse("market://details?id=packagename"));
startActivity(marketIntent);
}
startActivity(intent);
}
});
}
我的问题是,是否可以不使用包名称(com.android.gallery3d)来搜索我的所有应用程序?例如,我想搜索“facebook”然后输入然后搜索。< / p>
因为如果我使用该软件包名称,我将无法打开新安装的应用程序..提前感谢。
答案 0 :(得分:0)
您可以使用PackageManager
final PackageManager pm = context.getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo(packageName, 0);
} catch (final NameNotFoundException e) {
ai = null;
}
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
这也是
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName,PackageManager.GET_META_DATA));
这将返回其清单的<application>
标记中定义的应用程序名称。