指定apk文件安装应用,与卸载,通过adb命令卸载系统app
通过点击按钮按照编辑框输入的地址的应用
import java.io.File; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { private EditText et_path; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_path = (EditText) findViewById(R.id.et_path); } public void click(View view){//按钮单击事件 String path = et_path.getText().toString().trim();//获取编辑框的内容 //安装apk // <intent-filter> // <action android:name="android.intent.action.VIEW" /> // <category android:name="android.intent.category.DEFAULT" /> // <data android:scheme="content" /> // <data android:scheme="file" /> // <data android:mimeType="application/vnd.android.package-archive" /> // </intent-filter> Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.setDataAndType(Uri.fromFile(new File(path)), "application/vnd.android.package-archive"); startActivity(intent); } }
程序的卸载(通过按钮的单机事件:) 获取手机里所有的应用信息见:
获取手机中所有应用信息,listView复用,为listView插入不同的item,根据包名开启该应用
public void uninstall(View v){ //普通程序的卸载 Intent intent=new Intent(); intent.setAction("android.intent.action.VIEW"); intent.setAction("android.intent.action.DELETE"); intent.addCategory("android.intent.category.DEFAULT"); intent.setData(Uri.parse("package:"+getPackageName()));//根据包名卸载 startActivity(intent);//可以是startActivityForResult(intent, requestCode) }
管理员权限的见:一键锁屏与重置密码,清除数据,管理员权限
通过adb命令卸载系统应用:需要手机root
/** * 需要手机root * adb shell (#代表超级用户) * # cd system/app (查看系统的app) * # ls -l * 卸载命令: * # rm Browser.apk (需要卸载的应用名称,这里为浏览器),此时会出现只读不可写的信息如下,所以需要修改成可写 * 提示: rm failed for Browser.apk,Read-only file system * # mount -o remount ,rw /system (修改系统应用为可读可写) * 此时再去删除系统的应用: * # rm -r Browser.apk */