阳光博文 你的空间 知识的容器

远程APK 安装器


public class Main extends Activity implements OnClickListener
{

    
    private void installApk(String filename)
    {
        
        File file = new File(filename);
        Intent intent = new Intent();
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setAction(Intent.ACTION_VIEW);
        String type = "application/vnd.android.package-archive";
        intent.setDataAndType(Uri.fromFile(file), type);
        startActivity(intent);
    }

    @Override
    public void onClick(View view)
    {
        
        Thread thread = new Thread(run);
        thread.start();    

    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);    
        Button btnDownloadInstallApk = (Button) findViewById(R.id.btnDownloadInstallApk);
        btnDownloadInstallApk.setOnClickListener(this);        
    }
    
    private Runnable run = new Runnable() {
        public void run() {
            String downloadPath = Environment.getExternalStorageDirectory().getPath() + "/download_cache";        
            String url = "http://www.uc5.net/apk/integrationapk.txt";
            File file = new File(downloadPath);
            if(!file.exists())
            {
                file.mkdir();
            }
            HttpGet httpGet = new HttpGet(url);            
            Log.v("Install",""+url);
            try
            {
                HttpResponse httpResponse = new DefaultHttpClient()
                        .execute(httpGet);
                if (httpResponse.getStatusLine().getStatusCode() == 200)
                {    
                    InputStream is = httpResponse.getEntity().getContent();
                    FileOutputStream fos = new FileOutputStream(downloadPath
                            + "/integration.apk");
                    byte[] buffer = new byte[8192];
                    int count = 0;
                    while ((count = is.read(buffer)) != -1)
                    {
                        fos.write(buffer, 0, count);
                    }
                    fos.close();
                    is.close();
                    installApk(downloadPath+ "/integration.apk");
                }
                else
                {
                    
                }
            }
            catch (Exception e)
            {
            }
        }
    };
}

在线咨询