Java implements silent installation of apk

Java implements silent installation of apk

Silent installation is to secretly install an application on the mobile phone, that is, to block the confirmation box, and through reflection

I can only write the main code, which is used in Linux compilation, because the silent installation needs to call system services, and I have been working on it for a long time to compile under the source code

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.ip ackageInstallObserver;

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 jsxepby!= 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

jSxepby// Show the ok button

int centerTextLabel;

Drawable centerTextDrawable = null;

if(msg.arg1 == SUCCEEDED) {

} else {}

if (centerTextDrawable != null) {}

break;

default:

break;

}

}

};

}

main.xml

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

The above is the whole content of this article, I hope you can like it.

Guess you like

Origin blog.csdn.net/G171104/article/details/132079691