引用代码:

    

 if(AutoInstall.copyApkFromAssets(activity, "UPPayPluginExPro.apk", Environment.getExternalStorageDirectory().getAbsolutePath()+"/UPPayPluginExPro.apk")){  
                                              Log.e("tag", "====2=====");
                                              AutoInstall.setUrl(Environment.getExternalStorageDirectory().getAbsolutePath()+"/UPPayPluginExPro.apk");  
                                            AutoInstall.install(ForMe2Activity.this);
                                     }else{
                                         tomast("存储卡异常.");
                                     }

   方法:

    

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
  
public class AutoInstall {  
    private static String mUrl;  
    private static Context mContext;  
  
    /** 
     * 外部传进来的url以便定位需要安装的APK 
     *  
     * @param url 
     */  
    public static void setUrl(String url) {  
        mUrl = url;  
    }  
  
    /** 
     * 安装 
     *  
     * @param context 
     *            接收外部传进来的context 
     */  
    public static void install(Context context) {  
        mContext = context;  
        // 核心是下面几句代码  
        Intent intent = new Intent(Intent.ACTION_VIEW);  
        intent.setDataAndType(Uri.parse("file://" + mUrl),  
                "application/vnd.android.package-archive");  
        mContext.startActivity(intent);  
    }  
    public static boolean  copyApkFromAssets(Context context, String fileName, String path) {  
        boolean copyIsFinish = false;  
        try {  
            InputStream is = context.getAssets().open(fileName);  
            File file = new File(path);  
            file.createNewFile();  
            FileOutputStream fos = new FileOutputStream(file);  
            byte[] temp = new byte[1024];  
            int i = 0;  
            while ((i = is.read(temp)) > 0) {  
                fos.write(temp, 0, i);  
            }  
            fos.close();  
            is.close();  
            copyIsFinish = true;  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        return copyIsFinish;  
    } 
}