Ejecutar secuencia de comandos con la aplicación de Android
Tengo este script de shell:
#!system/bin/sh while : do sync echo 3> /proc/sys/vm/drop_caches echo "Script is been launched" sleep 30m done exit 0;
Deseo ejecutar este script con una aplicación para Android. Ya he creado un botón con sólo un brindis por ahora. ¿Cómo puedo tomar el script (free.sh) y lanzarlo con el botón de la aplicación? ¿O hay una solución para reescribir el código en java? Gracias
- Actividad onTouchEvent () no se está llamando al hacer clic en el botón
- ¿Botón en la tostada de encargo de Android?
- Cómo implementar el botón deslizante de tres vías en Android
- Cómo cambiar el color de texto del botón de Android de forma global en el tema
- El efecto Ripple no funciona en RelativeLayout
- Android: Crear botón en forma
- Cómo ir sobre varios botones y OnClickListeners
- Android, ¿qué sucede realmente después de cerrar una aplicación?
- ¿Crear selector de android extendiendo el fondo? Attr / selectableItemBackground?
- Creación dinámica de botones y configuración onClickListener
- Estilo del botón de google maps de Android
- ¿Puedo aumentar un botón onclick-area de forma programática?
- Poner espacio entre los botones de Android
En primer lugar, utilizará Eclipse para crear una sencilla aplicación Android helloworld. Y agrega un botón en tu diseño. Esta es una práctica muy priliminary de desarrollo de Android que se puede cavar mucho más de http://d.android.com
Prueba este código en la función de devolución de llamada de onclick:
Button b = (Button)findViewById(R.id.buttonPower); b.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Process p=null; try { p = new ProcessBuilder() .command("PathToYourScript") .start(); } catch (IOException e) { e.printStackTrace(); } finally { if(p!=null) p.destroy(); } } });
Tengo errores. Este es el código:
package com.mkyong.android; import java.io.InputStream; import java.io.OutputStream; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import com.example.toast.R; public class MainActivity extends Activity { private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab1); button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Process process = new ProcessBuilder() .command("PATH") .redirectErrorStream(true) .start(); try { InputStream in = process.getInputStream(); OutputStream out = process.getOutputStream(); readStream(in);// Here: Syntax error, insert "}" to complete `Block` finally { process.destroy(); } } } }); //Here: Syntax error on token "}", delete this token } protected void readStream(InputStream in) { // TODO Auto-generated method stub } }
Bueno, ahora No hay errores (¡GRACIAS!) Pero no hacer nada … para probar he escrito un script fácil de escribir un archivo.txt. Vea el código:
package com.mkyong.android; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import java.io.IOException; import com.example.toast.R; public class MainActivity extends Activity { private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab1); button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @SuppressLint("SdCardPath") @Override public void onClick(View arg0) { Process p=null; try { p = new ProcessBuilder() .command("/sdcard/Script/scritturafile.sh") .start(); } catch (IOException e) { e.printStackTrace(); } finally { if(p!=null) p.destroy(); } } }); } }
El no hay errores, pero cuando presiono el botón creo que el shell no va así que no cree el archivo.txt
A continuación se muestra cómo ejecutar el script de shell desde tu aplicación Android
try { Process process = Runtime.getRuntime().exec("sh /sdcard/test.sh"); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); String listOfFiles = ""; String line; while ((line = in.readLine()) != null) { listOfFiles += line; } } catch (IOException e) { e.printStackTrace(); }
- Creación de una aplicación de bloqueo de estilo personalizado
- Grabar y procesar audio simultáneamente con Thread en Android