Android调用系统功能、apk安装卸载

来源:互联网 发布:seo常用工具 编辑:程序博客网 时间:2024/04/27 15:10

Android调用系统功能、apk安装卸载

分类: Android开发 2964人阅读 评论(0) 收藏 举报
apk系统AndroidIntent


使用网络io读写api获取网络apk文件,并调用系统服务进行安装;

网络读取必须放于线程中进行;


1、安装apk

[java] view plaincopy
  1. String dirPath = "/data/data/" + getPackageName() + "/files/test.apk"//文件需有可读权限  
  2. Intent intent = new Intent();  
  3. intent.setAction(android.content.Intent.ACTION_VIEW);  
  4. intent.setDataAndType(Uri.parse("file://" + filePath), "application/vnd.android.package-archive");  
  5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  6. startActivity(intent);  


2、卸载apk

方法一(已测试):

[java] view plaincopy
  1. Uri packageUri = Uri.parse("package:" + appUnit.pname);  
  2. Intent deleteIntent = new Intent();  
  3. deleteIntent.setAction(Intent.ACTION_DELETE);  
  4. deleteIntent.setData(packageUri);  
  5. context.startActivity(deleteIntent);  


方法二(未测试):

[java] view plaincopy
  1. private void startUninstall(final String pkg) {  
  2.  if (!InstallUtils.isApkInstalled(mContext, pkg)) {  
  3.   Toast.makeText(mContext, "程序未安装,无需卸载!", Toast.LENGTH_SHORT).show();  
  4.   return;  
  5.  } else {  
  6.   Uri packageURI = Uri.parse("package:" + pkg);  
  7.   Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);  
  8.   startActivity(uninstallIntent);  
  9.  }  
  10. }  



3. 启动Android默认浏览器(已测试

  

[java] view plaincopy
  1. Intent intent= new Intent();          
  2.   intent.setAction("android.intent.action.VIEW");      
  3.   Uri content_url = Uri.parse("http://www.cnblogs.com");     
  4.   intent.setData(content_url);    
  5.   startActivity(intent);  

这样子,android就可以调用起手机默认的浏览器访问。

以下内容均来自转载。未经测试。

附带电话号码(调用系统短信):

[java] view plaincopy
  1. Intent mIntent = new Intent(Intent.ACTION_VIEW);    
  2.             mIntent.putExtra("address",phoneNum);    
  3.             mIntent.putExtra("sms_body""");    
  4.             mIntent.setType("vnd.android-dir/mms-sms");    
  5.             context.startActivity(mIntent);    

附带短信内容(调用系统短信):

[java] view plaincopy
  1. Uri smsToUri = Uri.parse("smsto:");// 联系人地址  
  2.             Intent mIntent = new Intent(android.content.Intent.ACTION_SENDTO,  
  3.                     smsToUri);  
  4.             mIntent.putExtra("sms_body",  
  5.                     "abcdefgh");// 短信内容  
  6.             context.startActivity(mIntent);  
附带邮件内容(调用系统邮件):

[java] view plaincopy
  1. Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);  
  2.             // 文本格式  
  3.             emailIntent.setType("text/plain");  
  4.             // 对方邮件地址  
  5.             emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, "");  
  6.             // 标题内容  
  7.             emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "");  
  8.             // 邮件文本内容  
  9.             emailIntent  
  10.                     .putExtra(android.content.Intent.EXTRA_TEXT,  
  11.                             "abcdefgh");  
  12.             context.startActivity(Intent.createChooser(emailIntent,  
  13.                     "Choose Email Client"));  

调用系统添加联系人:

[java] view plaincopy
  1. Intent intent = new Intent(Intent.ACTION_INSERT,  
  2.                     Contacts.CONTENT_URI);  
  3.             intent.putExtra("name""");  
  4.             intent.putExtra("phone", number);  
  5.             context.startActivity(intent);  
调用系统添加或编辑联系人:

[java] view plaincopy
  1. Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);  
  2.             intent.setType("vnd.android.cursor.item/contact");  
  3.             intent.putExtra(Intents.Insert.PHONE, number);  
  4.             context.startActivity(intent);  
调用系统编辑联系人:

[java] view plaincopy
  1. Intent i = new Intent(Intent.ACTION_EDIT);   
  2.         i.setData(ContentUris.withAppendedId(ContactsContract.Contacts.CONTE
0 0