Saltar para conteúdo


Foto
- - - - -

Ajuda com java


  • Por favor inicie sessão para responder
6 respostas a este tópico

#1 rendeiro2005

rendeiro2005

    Membro

  • Membros
  • PipPip
  • 84 mensagens
  • LocalizaçãoAzeitão
  • Galaxy S3 GT-I9300

Mensagem publicada 13 December 2010 - 19:56

Boas a todos,Como podem ver, este é o meu primeiro tòpico aqui e para pedir ajuda na resolução de um "pequeno" problema:( Bem, o que se passa é o seguinte:Tenho três ficheiros na pasta raw (chargemon, busibox e um *.tar) e necessitava de criar permissões para copiar esses ficheiros para o sdcard quando clicasse no botão e instalar o ficheiro tar de seguida.Já criei praticamente toda a aplicação com a execção deste ponto e do ponto "desinstalar".Aguém me pode ajudar s.f.f.?Obrigado;)
package com.rendeiro2005.xRecovery;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class xRecovery extends Activity {		Button INSTALL;	Button REMOVE;	AlertDialog.Builder builder;	AlertDialog Alert;			    /** Called when the activity is first created. */				@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                try        {            Process process = Runtime.getRuntime().exec("su");            DataOutputStream outputStream = new DataOutputStream(process.getOutputStream());             DataInputStream inputStream = new DataInputStream(process.getInputStream());            outputStream.writeBytes("\n");            outputStream.flush();            outputStream.writeBytes("exit\n");             outputStream.flush();             process.waitFor();            process.waitFor();              if (process.exitValue() != 255) {                                  toastMessage("[acrlink='http://www.androidpt.info/index.php?title=Root']root[/acrlink]");              }              else {                                    toastMessage("not [acrlink='http://www.androidpt.info/index.php?title=Root']root[/acrlink]");        }        }        catch (IOException e)        {            try {				throw new Exception(e);			} catch (Exception e1) {								e1.printStackTrace();			}        }        catch (InterruptedException e)        {            try {				throw new Exception(e);			} catch (Exception e1) {								e1.printStackTrace();			}        }               INSTALL = (Button)findViewById(R.id.Button01);        REMOVE = (Button)findViewById(R.id.Button02);                builder = new AlertDialog.Builder(this);        builder.setMessage("Do you want to install xRecovery?");        builder.setCancelable(false);        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {																try {					Runtime.getRuntime().exec("sh /sdcard/gscript/xrecovery.sh");				} catch (IOException e) {										e.printStackTrace();				}				Toast.makeText(getApplicationContext(), 						"Done", 						Toast.LENGTH_SHORT).show();							}		});                builder.setNegativeButton("No", new DialogInterface.OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				dialog.cancel();							}		});                Alert = builder.create();                                INSTALL.setOnClickListener(new OnClickListener(){        	        				@Override			public void onClick(View v) {								Alert.show();																															}        });                REMOVE.setOnClickListener(new OnClickListener(){			@Override			public void onClick(View v) {																																			}        	        });                           }	private void toastMessage(String string) {					}}

"if a guy remembers the color of your eyes after your first date, then you know you have small boobs"
If you want to donate, please press PayPal logo Imagem colocada

#2 maxado

maxado

    Fã de Android

  • Membros
  • PipPipPip
  • 389 mensagens

Mensagem publicada 13 December 2010 - 20:13

Não percebi muito bem o que queres fazer, porque falas em instalar e depois desistalar.Mas se não conseguiste trabalhar com o cartão de memoria meteste no manifest as permissões?

#3 rendeiro2005

rendeiro2005

    Membro

  • Membros
  • PipPip
  • 84 mensagens
  • LocalizaçãoAzeitão
  • Galaxy S3 GT-I9300

Mensagem publicada 13 December 2010 - 20:19

Olá, obrigado pelo rápido feedback;) talvez seja melhor por imagens :)A minha dúvida para já ;) é como copiar os ficheiros em questão...o assunto para desistalar é lá mais para a frente ;)Obrigado
"if a guy remembers the color of your eyes after your first date, then you know you have small boobs"
If you want to donate, please press PayPal logo Imagem colocada

#4 maxado

maxado

    Fã de Android

  • Membros
  • PipPipPip
  • 389 mensagens

Mensagem publicada 13 December 2010 - 20:31

Assim de uma forma rápida:1º Meter as permissões no manifest:2º Tens de usar o Environment.getExternalStorageDirectory()para sacares o file onde escrever3º Pegas nisto getResources().*** Para sacares o pointer para o recuso k keres e depois usas uma função normal de java para copiares os ficheiros tens muitas na net tipo esta:void copy(File src, File dst) throws IOException { InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dst); // Transfer bytes from in to out byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } in.close(); out.close(); }

#5 rendeiro2005

rendeiro2005

    Membro

  • Membros
  • PipPip
  • 84 mensagens
  • LocalizaçãoAzeitão
  • Galaxy S3 GT-I9300

Mensagem publicada 13 December 2010 - 21:18

Ok. Muito obrigado pelas dicas;)Eu, de facto, já tinha colocado as permissões no xml. No entanto só mais uma questão se não for incómodo (esta é a primeira aplicação que estou a tentar desenvolver e também a primeira vez que vejo java à frente) estes comandos são só para a cópia, correcto? Após esses estarem inseridos tenho de utilizar o Runtime.getruntime ().exec para a execução do aplicativo, correcto?
"if a guy remembers the color of your eyes after your first date, then you know you have small boobs"
If you want to donate, please press PayPal logo Imagem colocada

#6 maxado

maxado

    Fã de Android

  • Membros
  • PipPipPip
  • 389 mensagens

Mensagem publicada 13 December 2010 - 21:57

eu já usei e não preciso de fazer isso, mas pelo que vi do teu código, vi por alto, andas a mexer com root e ai já não sei, nunca usei!!

#7 rendeiro2005

rendeiro2005

    Membro

  • Membros
  • PipPip
  • 84 mensagens
  • LocalizaçãoAzeitão
  • Galaxy S3 GT-I9300

Mensagem publicada 13 December 2010 - 21:59

ok, mais uma vez obrigado.irei tentar amanhã pois nesta altura estou em casa e tenho o projecto guardado no computador do trabalho...loga vejo o que consigo.um abraço
"if a guy remembers the color of your eyes after your first date, then you know you have small boobs"
If you want to donate, please press PayPal logo Imagem colocada