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) { }}
Ajuda com java
Iniciado por
rendeiro2005
, Dec 13 2010 19:56
6 respostas a este tópico
#1
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;)
"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
If you want to donate, please press PayPal logo
#2
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
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
If you want to donate, please press PayPal logo
#4
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
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
If you want to donate, please press PayPal logo
#7
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
If you want to donate, please press PayPal logo