Portal Android - Comunidade de Desenvolvedores Android
http://www.portalandroid.org/comunidade/

Download e update de apk sem Google play
http://www.portalandroid.org/comunidade/viewtopic.php?f=2&t=31281
Página 1 de 1

Autor:  adamis [ 07 Ago 2018, 19:35 ]
Assunto do Tópico:  Download e update de apk sem Google play

Estou fazendo download de um apk para atualizar o mesmo app. porem ate a versão 6.0 funciona mas quando uso o 7.0 e diante da erro
já revirei a internet em busca de solução. encontrei o provider mas mesmo assim não funciona. segue códigos. Preciso urgente disso funcionando.


Assync Task

@Override
    protected Response doInBackground(String... params) {
        WebService webService = new WebService();
        Response response = new Response();
        Intent intent;

        try {

            File DEVICE_ROOT = new File("/data/data/br.com.empresa.projeto/files/c5df6f7c16c99c69913be5e5ab7d2a6f.apk");
            Log.e("DEVICE_ROOT",""+DEVICE_ROOT.getAbsolutePath());

            Log.e("DEVICE EXISTE",""+DEVICE_ROOT.exists());

            String PATH = "/data/data/br.com.empresa.projeto/files/"+nomeFile;
            //String PATH = Environment.getExternalStorageDirectory().getPath()+File.separator + nomeFile;
            //Environment.getExternalStorageDirectory().toString()+"/"+ File.separator + nomeFile;

            String LINK = Request.WEB_UPDATE_APK + nomeFile;

            URL url = new URL(LINK);
            URLConnection conexion = url.openConnection();
            conexion.connect();

            fileSize = (double) conexion.getContentLength();

            FileOutputStream fos = this.service.getActivity().openFileOutput(nomeFile, Context.MODE_PRIVATE);
            InputStream is = webService.getHttpStream(LINK);

            if (is != null) {
                int len = 0;
                byte[] buffer = new byte[20480];

                while ((len = is.read(buffer)) != -1) {
                    fos.write(buffer, 0, len);
                    progresso+= len;
                    publishProgress(""+(Math.round(((progresso/fileSize)*100))));
                }
                is.close();
            }

            fos.flush();
            fos.close();


            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

                Uri contentUri = FileProvider.getUriForFile(this.service.getContext(),
                        this.service.getContext().getPackageName() + ".provider",
                        new File(PATH));

                Log.e("URI",""+contentUri.getPath());

            }else{
                intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.fromFile(new File(PATH)), "application/vnd.android.package-archive");
            }

            //response.setData(intent);
            response.setSuccess("S");

        } catch (Exception e) {
            response.setError(e.getMessage());
            response.setSuccess("N");
            e.printStackTrace();
        }

        return response;
    }

 


Activity

 UpdateAPKTask updateAPKTask = new UpdateAPKTask(InicialActivity.this, versionNew.getArquivo());
                                        updateAPKTask.execute();
 



Manifest

 <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="provider"
            android:exported="false"
            android:grantUriPermissions="true">

            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths" />

        </provider>
 


provider_paths

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>
 


O mais engraçado e que rodando pelo emulador eu consigo ver o download do arquivo porem nao consigo acessa-lo nem instalar via Intent.
Desde já agradeço.

Página 1 de 1 Todos os Horários estão como UTC - 2 horas [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/