http://blog.csdn.net/daweibalang717/article/details/24019247
做项目时涉及到调用计算器,百度一搜,好多。都是这样的
- 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;
- }