Jump to content
Sign in to follow this  
Cacio Renato

Monitorar arquivo

Recommended Posts

Boa tade,

Sou novo nessa linguagem estou tentando fazer a seguinte situação , monitorar arquivo no android , ao inserir um arquivo em um pasta definida quando eu gravar o arquivo la ele fazer vim o caminho com o nome do arquivo e extensão, ouvi falar do fileobserver mas tentei fazer com alguns modelos mas não tive exito , alguém tem um exemplo ou pode me ajudar nesse quesito .

Share this post


Link to post
Share on other sites

Passou um bom tempo e ninguém se prontificou mas eu comecei a fazer e tenho alguns problemas que não to me achando quando eu clico no botão para inicial o serviço ele diz que ta monitorando o arquivo mas quando eu mando na pasta ele não faz nada e eu debug no código mas não acho nada vou postar aqui um pouco do código pra ve se aguem se prontifica a me ajudar.

package br.com.prodasiq.servicenfe;

import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.app.Dialog;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

SharedPreferences prefs = getSharedPreferences(Constants.PREFS_KEY, MODE_PRIVATE);
if (prefs.contains(Constants.PATH_KEY)) {
String path = prefs.getString(Constants.PATH_KEY, "");

// initialize the value in the text field
EditText pathTxt = (EditText) findViewById(R.id.pathTxt);
pathTxt.setText(path);

// start observing
Intent i = new Intent(this, InvoiceObserverService.class);
startService(i);

// notifies the user
NotificationHelper.showNotification(this, "Monitoramento iniciado", "O diretório " + path + " está sendo monitorado");
}


Button startBtn = (Button) findViewById(R.id.startBtn);

startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// get the path entered by the user
EditText pathTxt = (EditText) findViewById(R.id.pathTxt);
String path = pathTxt.getText().toString().trim();

// stores the path in the shared preferences so in the next boot, the system may check
// if it was already entered and so start monotoring the same path automatically
if (!path.isEmpty()) {
File pathFile = new File(path);

// if the path is a directory
if (pathFile.isDirectory()) {
SharedPreferences prefs = getSharedPreferences(Constants.PREFS_KEY, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(Constants.PATH_KEY, path);
editor.apply();

// start observing
Intent i = new Intent(MainActivity.this, InvoiceObserverService.class);
startService(i);

// notifies the user
NotificationHelper.showNotification(MainActivity.this, "Monitoramento iniciado", "O diretório " + path + " está sendo monitorado");
} else {
// show an alert dialog informing the user about the error
Bundle dialogBundle = new Bundle();
dialogBundle.putString(Constants.PATH_KEY, path);

showDialog(Constants.DIALOG_PATH_INVALID, dialogBundle);
}
}
}
});

}

@Nullable
@Override
protected Dialog onCreateDialog(final int id, Bundle args) {
switch (id) {
case Constants.DIALOG_PATH_INVALID:
String message = "O caminho " + args.getString(Constants.PATH_KEY) + " não é válido.";

AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setCancelable(false)
.setTitle("Erro")
.setMessage(message).setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismissDialog(id);
removeDialog(id);
}
});

return builder.create();
default:
return null;
}
}

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By isaque_cb2
      Boa noite! gente, eu estou tentando colocar alguma forma de pagamentos no meu app, no caso para que o usuario possa adicionar credito ao mesmo, eu estou fazendo isso com a api da JUNO, porem, tambem quero adicionar PIX como forma de pagamento pois não saio do zero com a juno! alguem aqui ja usou PIX com android studio e pode me explicar como fazer? ja busquei por aulas e tutoriais e nada... Grato!
    • By Marshalls
      Olá.
      Eu adoro ouvir música, então quero escolher o melhor aplicativo de música para o meu telefone. Alguém sabe quais aplicativos são adequados para telefones Android? spotify Techbigs, por exemplo, youtube premium em https://techbigs.com/10-best-music-players-for-android-in-2021.html
    • By RandyDrake
      Eu tenho um bug que precisa ser corrigido no jogo Idle Army Base.
      Hoje em dia, geralmente me movo à vontade.
      Isso me deixa muito desconfortável
      Alguém pode consertar isso para mim?
      Desde já, obrigado.
    • By jrxxjr
      Sou iniciante em Android, e fiz uma pequena aplicação Android de teste, usando Java, para aprender a utilizar um ListView com botões, e tive um problema. Os botões não funcionam direito, as vezes eu clico em cima do Edit, ele muda a mensagem para clicado, "Edit", confirmando que eu cliquei ai. Mas tem vezes que eu clico no botão Delete, e depois no botão Edit, e o texto não é mudado, ou seja o evento click não funcionou, se eu coloco um break point, no código-fonte, onde está entrando no evento setOnItemClickListener. Mas a mensagem exibida, não está correta.
      E tem um outro erro, de funcionamento do AlertDialog, da mensagem de confirmação de deleção.
      O código-fonte está abaixo.
      Por favor, alguém poderia me ajudar ?
       
      AgendaActivity.java
      package com.test.android.view; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.test.android.model.Agenda; import com.test.android.util.Util; public class AgendaActivity extends AppCompatActivity { ListView listview; MyArrayAdapter agendaArrayAdapter; ArrayList<AgendaTo> agendaArray = new ArrayList<AgendaTo>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_agenda); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Nick", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("John", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Anthony", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("James", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Jack", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Jeremy", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()),Util.fillSpaces("Long", 50))); agendaArrayAdapter = new MyArrayAdapter(AgendaActivity.this, R.layout.list_item, agendaArray); listview = (ListView) findViewById(R.id.listView); listview.setItemsCanFocus(false); listview.setAdapter(agendaArrayAdapter); listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, final int position, long id) { Toast.makeText(AgendaActivity.this, "List Item Clicked:" + position, Toast.LENGTH_LONG) .show(); } }); } } MyArrayAdapter.java
      package com.test.android.view; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.text.SimpleDateFormat; import java.util.ArrayList; public class MyArrayAdapter extends ArrayAdapter<AgendaTo> { Context context; int layoutResourceId; ArrayList<AgendaTo> agendas = new ArrayList<AgendaTo>(); public MyArrayAdapter(Context context, int layoutResourceId, ArrayList<AgendaTo> agendas) { super(context, layoutResourceId, agendas); this.layoutResourceId = layoutResourceId; this.context = context; this.agendas = agendas; } @Override public View getView(int position, View convertView, ViewGroup parent) { View item = convertView; AgendaWrapper agendaWrapper = null; if (item == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); item = inflater.inflate(layoutResourceId, parent, false); agendaWrapper = new AgendaWrapper(); agendaWrapper.nome = (TextView) item.findViewById(R.id.textNome); agendaWrapper.data = (TextView) item.findViewById(R.id.textData); agendaWrapper.edit = (Button) item.findViewById(R.id.btnEdit); agendaWrapper.delete = (Button) item.findViewById(R.id.btnDelete); item.setTag(agendaWrapper); } else { agendaWrapper = (AgendaWrapper) item.getTag(); } AgendaTo agenda = agendas.get(position); agendaWrapper.nome.setText(agenda.getNome()); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); agendaWrapper.data.setText(sdf.format(agenda.getData())); agendaWrapper.edit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, "Edit", Toast.LENGTH_LONG).show(); } }); final int absolutePsition = position; final AgendaWrapper itemDelete = agendaWrapper; final ViewGroup viewGroup = parent; agendaWrapper.delete.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, "Delete " + absolutePsition, Toast.LENGTH_LONG).show(); AlertDialog diaBox = AskOption(itemDelete, absolutePsition, viewGroup); diaBox.show(); } }); return item; } private AlertDialog AskOption(AgendaWrapper agendaWrapper, int position, final ViewGroup viewGroup) { final int deletePosition = position; AlertDialog myQuittingDialogBox = new AlertDialog.Builder(context) .setTitle("Delete") .setMessage("Do you want to Delete") .setPositiveButton("Delete", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { agendas.remove(deletePosition); refreshListView(agendas, viewGroup); dialog.dismiss(); } private void refreshListView(final ArrayList<AgendaTo> agendas, final ViewGroup viewGroup) { final MyArrayAdapter myArrayAdapter = new MyArrayAdapter(context, R.layout.list_item, agendas); final LayoutInflater inflater = ((Activity) context).getLayoutInflater(); final View view = inflater.inflate(layoutResourceId, viewGroup, false); final ListView listview = (ListView) view.findViewById(R.id.listView); listview.setAdapter(myArrayAdapter); } }) .setNegativeButton("cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create(); return myQuittingDialogBox; } static class AgendaWrapper { TextView nome; TextView data; Button edit; Button delete; } } list_item.xml
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="4dp" tools:context=".AgendaActivity" > <TextView android:id="@+id/textNome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="Nome:" android:width="50dp" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textData" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textData" android:layout_alignTop="@id/textNome" android:layout_alignRight="@id/textNome" android:layout_alignParentLeft="true" android:layout_marginTop="5dp" android:width="50dp" android:text="Data:" android:textAppearance="?android:attr/dateTextAppearance" android:textSize="16sp" /> <Button android:id="@+id/btnEdit" android:layout_width="80dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="#99CC" android:focusable="false" android:focusableInTouchMode="false" android:text="Edit" android:textColor="#FFFFFF" /> <Button android:id="@+id/btnDelete" android:layout_width="80dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_below="@+id/btnEdit" android:layout_marginTop="3dp" android:background="#99CC" android:focusable="false" android:focusableInTouchMode="false" android:text="Delete" android:textColor="#FFFFFF" /> </RelativeLayout> activity_agenda.xml
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#990044" tools:context="com.test.android.view.AgendaActivity" > <TextView android:id="@+id/listLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="Touch List" android:textColor="#FFFFFF" android:textSize="25sp" /> <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/listLabel" android:layout_marginTop="5dp" android:cacheColorHint="#FFFFFF" /> </RelativeLayout>  
    • By thekingowl
      Mala Vermelha
       
      Depois de quase dois anos de desenvolvimento, tive o prazer de ter meu jogo finalmente lançado na Play Store. Ele foi desenvolvido em uma plataforma para jogos browser, chamada Twine. Com algumas linhas de código em Java para adequar ao Mobile e convertido através do PhoneGap, consegui fazer a versão mobile para Android.
       
      Em "Mala Vermelha" você viverá a história da Policial Muriel. Entendiada na cidade pequena, Muriel tem sua vida alterada quando uma mala vermelha aparece na meio da cidade. É o início da aventura de Muriel, tentando capturar um assassino, antes que ele termine seu plano. Você tomará as decisões durante a investigação, levando Muriel aos mais diversos locais da cidade, em busca de pistas para desvendar o padrão do assassino. Enfrente não só o assassino, mas como os cidadãos da cidade.
       
      Totalmente em português, "Mala Vermelha" faz com que cada detalhe apresentado na história, possa ser utilizado para desvendar o enigma do assassino. Cada decisão a levará a um destino diferente. Com múltiplos finais, "Mala Vermelha" fará com que você escolha qual o melhor desfecho para o seu estilo de jogo. Não existe certo ou errado. Você decide.
       
      Mala Vermelha na Play Store: https://bit.ly/2XSfImx
      Blog: https://thekingowlgames.blogspot.com/2020/04/mala-vermelha_20.html
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.