Boa tarde, sou novo no desenvolvimento Android e para começar estou fazendo um programa que busca as ligações do celular, porém estou com dificuldade para utilizar o objeto CallLog.Calls.
tenho duas classes que utilizei o objeto, na primeira eu faço a leitura direta dos itens e imprimo na lista, porém só são apresentados os valores default de cada propriedade (código abaixo da minha classe)
public class RecebidasActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView list = new ListView(this);//(ListView)findViewById(R.id.countries);
ArrayAdapter<String>adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,STR_FIELDS);
list.setAdapter(adapter);
setContentView(list);
}
public static final String[] STR_FIELDS = {
android.provider.CallLog.Calls.NUMBER,
android.provider.CallLog.Calls.TYPE,
android.provider.CallLog.Calls.CACHED_NAME,
android.provider.CallLog.Calls.CACHED_NUMBER_TYPE,
android.provider.CallLog.Calls.DATE,
android.provider.CallLog.Calls.DURATION,
android.provider.CallLog.Calls.CACHED_NUMBER_LABEL,
android.provider.CallLog.Calls.NUMBER
};
}
Na segunda classe, após muita pesquisa na net, achei a utilização de cursor para poder exibir as informações, porém desta forma o app da o erro:
“04-06 19:08:54.781: E/dalvikvm(222): Unable to open stack trace file ‘/data/anr/traces.txt’: Permission denied”
Segue a classe (neste caso eu estou tentando apresentar pelo menos uma informação para poder entender o tratamento das demais)
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CallLog;
import android.widget.TextView;
public class PerdidasActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Uri allCalls = Uri.parse("content://call_log/calls");
Cursor c = managedQuery(allCalls, null, null, null, null);
String num= c.getString(c.getColumnIndex(CallLog.Calls.NUMBER));// for number
String name= c.getString(c.getColumnIndex(CallLog.Calls.CACHED_NAME));// for name
String duration = c.getString(c.getColumnIndex(CallLog.Calls.DURATION));// for duration
int type = Integer.parseInt(c.getString(c.getColumnIndex(CallLog.Calls.TYPE)));// for call type, Incoming or out going
TextView txt=new TextView(this);
txt.setText(num);
setContentView(txt);
}
Alguem já trabalhou com esse objeto para poder me mostrar onde estão os meus erros e o que preciso fazer para corrigi-los?
Obrigado.