|
781
|
Programación / Programación General / Re: Como guardar arraylist en archivo de texto interno android java
|
en: 22 Noviembre 2018, 22:50 pm
|
Hola, bueno bueno ok retomemos Usa esta api, que es la ultima control + alt + s y en el buscador escribe android sdk Como vas a usar otra api, debes crear una nueva unidad virtual, si por alguna razon no te quiera iniciar el .apk diciendo waiting for target device to come online android hazle wipe data como en la imagen siguienteen tu archivo de compilación de gradle Module:appandroid { compileSdkVersion 28 defaultConfig { applicationId "com.example.victor.miscompaneros" minSdkVersion 16 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
este método lo vamos a invocar en la clase EditarContacto.java(Las clases se escriben con mayúsculas) en el onCreate() por ejemplo. porque desde Marshmallow o superiores el código de solicitud 112 nos da permisos, en tiempo de ejecución private void checkPermisosEnSdCard() { //chekea si esta applicacion tienes permisos de lectura/escritura int permisosSdCard = ContextCompat. checkSelfPermission(this, Manifest. permission. WRITE_EXTERNAL_STORAGE); //Si no posee permisos, los otorga para almacenamiento externo if(permisosSdCard != PackageManager.PERMISSION_GRANTED) { //Solicita por medio de una notificacion que esta app va a escribir en el la sd ActivityCompat. requestPermissions(this, new String[]{Manifest. permission. WRITE_EXTERNAL_STORAGE}, 112); } }
Pues anteriormente leemos el archivo .txt cuando estaba en el directorio privado de la siguiente manera, bueno yo, tu no podías  //este metodo no es que no sirva, pero si vamos a leer ahora desde un directorio publico pues @RequiresApi(api = Build.VERSION_CODES.N) private String leerFichContactos (List contactos ) { final StringBuilder sb = new StringBuilder(); bR.lines().forEach(texto -> sb.append(texto+"\n")); return sb.toString(); }
Ahora así, no te dejes intimidar por el lijero cambio es casi lo mismo, en realidad no me gusta ese InputStreamReader , y tambien que no necesitamos a openFileInput que retorna un FileInputStream, pero del directorio privado, no es este caso, estamos escribiendo y leyendo desde el public dir dog No hace falta que le pases la lista como parámetro, porque leeremos desde el directorio@RequiresApi(api = Build.VERSION_CODES.O) private String leerFichContactos () { final StringBuilder sb = new StringBuilder(); final Path path = Paths. get(Environment. getExternalStoragePublicDirectory("/Contactos/contactos.txt"). toString()); try (final BufferedReader reader = Files. newBufferedReader(path,StandardCharsets. UTF_8)) { reader.lines().forEach(texto -> sb.append(texto + "\n")); ex.printStackTrace(); } return sb.toString(); }
Otras cosas que se me había olvidado, por ejemplo para hacer el trabajo casi completo, bueno hasta que apliques todo lo que te menciono, si por casualidad no encuentras el directorio en el emulador, en archivos, en la esquina superior derecha debes darle mostrar almacenamiento interno.
En la linea 235, tu clase Contacto, tienes un contructor telescópico, cuando tengas una clase con unos 3 parámetros o mas, aplica patron builder, la hará mas legible, mantenible etc. yyyyy el método escribirDatosContactos() 
lo primero que te mostré recuerda que en tu clase Contacto debes tener sobrescrito el método toString() si o si para este ejemplo, en el Android Studio oprime alt + insertar, y ahí puedes crear el toString() ya configurado con todas las instancias concatenadas.
|
|
|
782
|
Programación / Java / Re: JFileChooser guardar un archivo con nombre preterminado
|
en: 22 Noviembre 2018, 11:04 am
|
Hola,
Es mejor usar alguna clase que contenga un buffer interno algo mas grande para que la escritura lectura sea mas eficiente, BufferedWriter posser un buffer por default de 8192 bytes, mientras que FileWrite es de 1024bytes, aunque pues también funciona.- la line 23, se usa try-with-resources, usado en clases que implementen a AutoCloseable, evitando usar .close()
- El método getTexto() se le concatenan saltos de linea, para crear un .bat con \r\n
- Si vas escribir solo texto pues es mas fácil aun
- En la linea 25, puedes Usar APPEND por CREATE, para insertar texto al final del archivo, sin borrar nada
package foro; import javax.swing.*; import java.io.BufferedWriter; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; /** * @author rub´n */ public class TestFileChooser { public TestFileChooser() { } public void EscribirEnArchivo (final String texto ) { //Async manera [b]sucia[/b] //getDest() obtiene el path absoluto + se concatena con el nombre del archivo final Path directorio = Paths.get(getDest().toString() + "/TuNombreDeArchivo.bat"); final StringBuilder sb = new StringBuilder(); try(final BufferedWriter bW = Files. newBufferedWriter(directorio,StandardOpenOption. CREATE)) { bW.write(sb.append(texto).toString()); e.printStackTrace(); } }).start(); } //Obtener destino private Path getDest() { jFileChooser. setFileSelectionMode(JFileChooser. DIRECTORIES_ONLY); //jFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); en este caso a ti te sirve escojer el directorio final int opc = jFileChooser.showOpenDialog(null); if (!(opc == 0)) { } return jFileChooser.getSelectedFile().toPath(); } private static String getTexto () { final StringBuilder sb = new StringBuilder(); return sb.append("@echo off\r\n") .append("msg * Hola SrTrp\r\n") .append(":end") .toString(); } public static void main (String... _0x72 ) { try { } catch (Exception ex ){ex. printStackTrace();} final TestFileChooser testFileChooser = new TestFileChooser(); testFileChooser.EscribirEnArchivo(getTexto()); } }
|
|
|
783
|
Programación / Programación General / Re: ¿En que lenguaje podria programar este bot?
|
en: 22 Noviembre 2018, 01:12 am
|
No se si conozcas el tema del RPA (Robotic process automation)?. Pues lo que quieres hacer es algo que gracias a las nuevas herramientas que salieron especificamente para eso se puede hacer, la que yo uso se llama UiPath y corre con codigo .net, muy intuitiva y facil de usar con muchas opciones para crear tu propio bot; ya sea para aplicaciones de escritorio, web, lo de los clicks etc. //Saludos compañero.  es de pago homie, y usa version trial es mejor programar uno 
|
|
|
788
|
Programación / Programación General / Re: Como guardar arraylist en archivo de texto interno android java
|
en: 21 Noviembre 2018, 21:28 pm
|
dog esa anotación por alguna razón vía reflection no esta haciendo el trabajo, todo lo hice con la ultima API de android, si estas usando un api tan vieja sera por tus requerimientos , algo pasa por ahí q no logro ver aun, baje hasta la api ICE CREAM
logro escribir el archivo en la sdDcard /Contactos/contactos.txt y visualizarlo por el Device File Explorer de momento
me reporto luego...
|
|
|
789
|
Programación / Programación General / Re: Como guardar arraylist en archivo de texto interno android java
|
en: 21 Noviembre 2018, 15:07 pm
|
Hola,
Bueno como decia Jack aka el popular the Ripper(destripador), empecemos por partes Usa geshi, por segunda vez  - Versión de Api que estas usando
- Añadiste los permisos en el AndroidManifest.xml
- Pregunta importante donde deseas escribir? en un directorio publico o privado?
y de paso tu metodoprivate void escribirDatosContactos (List contactos ) {}
No usas el parámetro entrante ahí correspondiente a la linea 10 dog
|
|
|
790
|
Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Re: Quitar navegador de samsung
|
en: 20 Noviembre 2018, 23:46 pm
|
Movil: Samsung Galaxy J3 (2016) - SM-J320FN
Hola he roteado el movil para eliminar app preinstaladas y queria saber si es seguro desistalar el navegador de Samsung ya que no tiene la opcion siquiera de desactivarlo como las app preinstaladas y no se si sera perjudicial para las conexiones quitarlo saludos
Quitalo puedes hacerlo, pero quizas te pueda generar alguna inestabilidad, igualmente buscate la rom stock de este samsung, respalda primero y luego flashea en caso de que tengas el SO mal dogCada teléfono es un mundo, y si ya lo tienes rooteado, pues arriésgate
|
|
|
|
|
|
|