E ai pessoal, alguém tem ideia de como fazer um atualizador pra um aplicativo android? irei utilizá-lo fora do Google Play
Amigo se voce tiver a resposta poderia compartilha-la ? , ficaria grato !
Voce vai ter que colocar um servidor para rodar um serviço de atualização e fazer com que sua aplicação verifique se tem atualizações
olá amigo, eu sei q é errado eu entregar pronto pra vc, más sofri mt pra descobrir como fazer isso que vc ta precisando.
primeiramente vc vai ter q colocar seu .apk em algum servidor ou site HTTP.
depois vc vai criar uma classe com o seguinte conteudo.
[code]package com.rsoftsolucoes.mobile.android.conexaoHttp;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.Toast;
import com.rsoftsolucoes.mobile.android.AtualizarDados;
import com.rsoftsolucoes.mobile.android.Dialog;
public class Updater {
private static final String RELEASE = "Arquivo.apk"; //nome do arquivo .apk quando ele estiver sendo criado na pasta /Download em seu device android
private static Context context;
public Updater(Context context) { //recebe o contexto da aplicação
Updater.setContext(context);
update();
}
public static void update() { //metodo principal para ser executado pela outra classe para atualizar
final String urlDownload="http://www.site.com.br/app/Arquivo.apk"; //local do arquivo .apk atualizado
final Dialog dialog = new Dialog(getContext());
dialog.showDialog(true, "Aguarde! atualizando versão de sistema");
new Thread (new Runnable() {
public void run() {
//baixar arquivo
try {
final String PATH = downloadFile(urlDownload);
installApplication(PATH);
// unInstallApplication("package:com.rsoftsolucoes.mobile.android");
} catch (IOException ex) {
Toast.makeText(getContext().getApplicationContext(),
ex.getMessage(), Toast.LENGTH_LONG).show();
} finally {
dialog.showDialog(false, "atualizado");
}
}
}).start();
}
//faz o download do arquivo especificado na url
private static String downloadFile(String urlDownload)
throws MalformedURLException, IOException, ProtocolException,
FileNotFoundException {
URL url = new URL(urlDownload);
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod(“GET”);
c.setDoOutput(true);
c.connect();
// final String PATH =
// "/data/data/com.rsoftsolucoes.mobile.android/files/" + RELEASE;
final String PATH = "/mnt/sdcard/download/" + RELEASE;
FileOutputStream fos = new FileOutputStream(new File(PATH));
String command = "chmod 777 " + PATH;
Runtime.getRuntime().exec(command);
InputStream is = c.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.close();
is.close();
return PATH;
}
//metodo para instalar o arquivo .apk
private static void installApplication(final String PATH) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(PATH)),
“application/vnd.android.package-archive”);
getContext().startActivity(intent);
}
//metodo para desinstalar o programa antes de instalar o novo
public static void unInstallApplication(String packageName)// Specific
// package Name
// Uninstall.
{
// Uri packageURI = Uri.parse(“package:com.CheckInstallApp”);
Uri packageURI = Uri.parse(packageName.toString());
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
getContext().startActivity(uninstallIntent);
}
public static Context getContext() {
return context;
}
public static void setContext(Context context) {
Updater.context = context;
}
}
[/code]
aí quando vc quiser atualizar sua app, vc pode colocar em uma activity ou service, ou seja la como vc quiser atualizar.
use o seguinte codigo na outra classe para atualizar sua app:
Fala cara joia.
da uma olhada nisso.
http://www.eliangela.info/2012/02/09/auto-update-em-sua-aplicacao-android/
http://www.eliangela.info/2012/02/16/auto-update-em-sua-aplicacao-android-parte-2/
Precisei fazer peguei aqui no Forum GUJ.
Estou utilizando o código informado nesse post para fazer a atualização, ele baixa o apk e avisa que vai substituir a aplicação, porém na verdade ele continua com o apk antigo, eu preciso desinstalar o aplicativo antes de instalar?
Aliás, ele avisa que vai substituir mas depois da a mensagem de Aplicativo não instalado.
Ola a todos,
testei o seu atualizador, mas quando chega nesta linha, ele entra no catch
Alguem sabe o porque?
Obrigado