广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    java实现静默安装apk

    2018-04-13 09:17:56 次阅读 稿源:互联网
    广告

    静默安装就是偷偷的把一个应用安装到手机上,就是屏蔽确认框,通过反射

    只能写个主要的代码,这个是在linux编译用到,因为静默安装需要调用系统服务,在源码下编译,我也是搞了好久

    InstallActivity.java

    package com.smart.Installback; import java.io.File;  //import com.android.packageinstaller.R; import android.app.Activity;import android.os.Bundle;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.pm.PackageManager.NameNotFoundException;import android.content.pm.IPackageInstallObserver;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.net.Uri;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView; public class InstallActivity extends Activity {  /** Called when the activity is first created. */  private Button btn=null;  private Button btn2=null;  private final int INSTALL_COMPLETE = 1;  final static int SUCCEEDED = 1;  final static int FAILED = 0;    public void onCreate(Bundle savedInstanceState){    super.onCreate(savedInstanceState);         setContentView(R.layout.main);    String fileName = Environment.getExternalStorageDirectory() + "/UC.apk";       Uri uri = Uri.fromFile(new File(fileName));       int installFlags = 0;      PackageManager pm = getPackageManager();      try {        PackageInfo pi = pm.getPackageInfo("com.uc.browser",             PackageManager.GET_UNINSTALLED_PACKAGES);        if(pi != null) {          installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;        }      } catch (NameNotFoundException e) {      }  //      String installerPackageName = getIntent().getStringExtra(//          Intent.EXTRA_INSTALLER_PACKAGE_NAME);      PackageInstallObserver observer = new PackageInstallObserver();      pm.installPackage(uri, observer, installFlags, "com.uc.browser");  }     private OnClickListener listener2=new OnClickListener(){    public void onClick(View v) {      String fileName = Environment.getExternalStorageDirectory() + "/UC.apk"; ivate       Uri uri = Uri.fromFile(new File(fileName));       int installFlags = 0;      PackageManager pm = getPackageManager();      try {        PackageInfo pi = pm.getPackageInfo("com.uc.browser",             PackageManager.GET_UNINSTALLED_PACKAGES);        if(pi != null) {          installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;        }      } catch (NameNotFoundException e) {      }                //      String installerPackageName = getIntent().getStringExtra(//          Intent.EXTRA_INSTALLER_PACKAGE_NAME);             PackageInstallObserver observer = new PackageInstallObserver();      pm.installPackage(uri, observer, installFlags, "com.uc.browser");      }  };     class PackageInstallObserver extends IPackageInstallObserver.Stub {    public void packageInstalled(String packageName, int returnCode) {      Message msg = mHandler.obtainMessage(INSTALL_COMPLETE);      msg.arg1 = returnCode;      mHandler.sendMessage(msg);    }  };     private Handler mHandler = new Handler() {    public void handleMessage(Message msg) {      switch (msg.what) {        case INSTALL_COMPLETE:          // Update the status text          // Show the ok button          int centerTextLabel;          Drawable centerTextDrawable = null;          if(msg.arg1 == SUCCEEDED) {                       } else {}          if (centerTextDrawable != null) {}           break;        default:          break;      }    }  };  }

    main.xml

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  > </LinearLayout>

    以上所述就是本文的全部内容了,希望大家能够喜欢。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告