做项目时涉及到调用计算器,百度一搜,好多。都是这样的
Button btn = (Button)this.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0) {
Intent mIntent = new Intent();
mIntent.setClassName("com.android.calculator2",
"com.android.calculator2.Calculator");
startActivity(mIntent);
}
});
但是我在HTC上测试是可以的。在是三星上是不可以的的,提示找不到
com.android.calculator2.Calculator
这个Activity 。 后来跟了一下。发现三星带计算器叫 com.sec.android.app.calculator.Calculator
于是想了个笨办法。 如下
/**打开计算机*/
public void openJS(){
PackageInfo pak = getAllApps(ChangeActivity.this, "Calculator","calculator"); //大小写
if(pak != null){
Intent intent = new Intent();
intent = this.getPackageManager().getLaunchIntentForPackage(pak.packageName);
startActivity(intent);
}else{
Toast.makeText(this, "未找到计算器", Toast.LENGTH_SHORT).show();
}
}
public PackageInfo getAllApps(Context context,String app_flag_1,String app_flag_2) {
PackageManager pManager = context.getPackageManager();
// 获取手机内所有应用
List<PackageInfo> packlist = pManager.getInstalledPackages(0);
for (int i = 0; i < packlist.size(); i++) {
PackageInfo pak = (PackageInfo) packlist.get(i);
if(pak.packageName.contains(app_flag_1)||pak.packageName.contains(app_flag_2)){
return pak;
}
}
return null;
}
转载请标明出处。