西安网站开发公司电话,做网站php需要几个人,怎么做qq代挂网站,我做网站如何分流客户AppUtils里面写了如何安装和卸载apk(这段代码出自这里#xff1a;点击打开链接~)#xff0c;这里的安装和卸载调用的是Android本身的一个安装卸载#xff0c;所以可能页面不会太优雅#xff0c;并不符合商业App的期望#xff0c;如果要做到更优雅的实现#xff0c;就要用…AppUtils里面写了如何安装和卸载apk(这段代码出自这里点击打开链接~)这里的安装和卸载调用的是Android本身的一个安装卸载所以可能页面不会太优雅并不符合商业App的期望如果要做到更优雅的实现就要用到静默安装/卸载这个可以参照网上教程我这里有一篇转载还是很不错的大家可以参照一下Android中实现静态的默认安装和卸载应用~public class AppUtils {/* 安装apk */public void installApk(Context context, String fileName) {Intent intent new Intent();intent.setAction(Intent.ACTION_VIEW);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(Uri.parse(file:// fileName), application/vnd.android.package-archive);context.startActivity(intent);}/* 卸载apk */public void uninstallApk(Context context, String packageName) {// Uri uri Uri.parse(package: packageName);Uri uri Uri.fromParts(package, packageName, null);Intent intent new Intent(Intent.ACTION_DELETE, uri);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);//一开始这句话是没有的运行的时候就报了这个错误“ android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? ”百度之后得知从一个Activity中要通过intent调出另一个Activity的话需要加上这个flag所以各位切记这句话不能漏context.startActivity(intent);}}在MainActivity中是这样使用的在这里我以安装企鹅为例先把企鹅的apk放到了我自定义好的一个文件夹中public class MainActivity extends Activity {AppUtils appUtils new AppUtils();String fileName ;String packageName ;Button btnCopyTp;BindView(R.id.btn_xz)Button btnXz;BindView(R.id.btn_az)Button btnAz;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(this);}OnClick({R.id.btn_xz, R.id.btn_az)public void onClick(View view) {switch (view.getId()) {case R.id.btn_xz://卸载程序String archiveFilePath Environment.getExternalStorageDirectory() /MyFiles/Download/QQ_482.apk;//安装包路径PackageManager pm getPackageManager();PackageInfo info pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);if (info ! null) {ApplicationInfo appInfo info.applicationInfo;packageName appInfo.packageName; //得到安装包名称xz(context, packageName);}break;case R.id.btn_az://安装程序fileName Environment.getExternalStorageDirectory() /MyFiles/Download/QQ_482.apk;File file new File(fileName);if (file.exists()) {az(context, fileName);}break;}}public void az(Context context, String fileName) {appUtils.installApk(context, fileName);}public void xz(Context context, String packageName) {appUtils.uninstallApk(context, packageName);}}布局文件xmlns:toolshttp://schemas.android.com/toolsandroid:idid/activity_mainandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:paddingBottomdimen/activity_vertical_marginandroid:paddingLeftdimen/activity_horizontal_marginandroid:paddingRightdimen/activity_horizontal_marginandroid:paddingTopdimen/activity_vertical_margintools:contextcom.honey.mytest.activity.MainActivityandroid:text通过我们的APP卸载其他应用android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:idid/btn_xzandroid:layout_belowid/btn_copy_tpandroid:layout_alignParentLefttrueandroid:layout_alignParentStarttrueandroid:layout_marginTop56dp /android:text通过我们的APP安装其他应用android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_belowid/btn_xzandroid:layout_alignParentLefttrueandroid:layout_alignParentStarttrueandroid:idid/btn_az /