» »

[Android] OnReceive problem

[Android] OnReceive problem

shadeX ::

Ta koda bere neprebrane SMS-je iz SMS content providerja.

public void checkUnreadSms() {
		
		numberOfUnreadSms = 0; // static variable
		resolver = context.getContentResolver();
		uri = Uri.parse("content://sms/inbox");
		projection = null;
		selection = "read = 0"; 
		selectionArgs = null;
		sortOrder = null;
		
		cursor = resolver.query(uri, projection, selection, selectionArgs, sortOrder);
		cursor.moveToFirst();
		
		numberOfUnreadSms = cursor.getCount();
	
	}


Koda deluje vredu. Ampak problem nastane ko registriram SMS broadcast receiver ( posluša na prihajajoče SMSje ). Se pravi kadar pride SMS na telefon, se izvšri zgornja koda. Problem je ker mi vedno pokaže število SMSjev "x-1" ( to samo v kodi onReceive ). Jaz smatram da zato ker mogoče ni bil še zapis narejen (o novem sporočilu) , v content provider kadar pride broadcast intent o prihajajočem SMSju.

Kako bi lahko zadevo rešil, da bi tudi na "onReceive" pokazalo pravilno število SMSjev ?
  • spremenil: shadeX ()

Kocka ::

Jaz bi poskusil s ContentObserver-jem, ki bi se trigal takrat, ko se spremeni "content://sms".

Registriraš ga nekako takole:
smsContentObserver = new ContentObserver( new Handler());
contentResolver.registerContentObserver(Uri.parse("content://sms"), true, smsContentObserver);
ter v smsContentObserver overridaš funkcijo onChange();

"content://sms/inbox" menda ne triga, je treba uporabiti kar "content://sms" in potem v onChange funkciji gledati spremembe.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Android] Bluetooth aplikacija

Oddelek: Programiranje
51098 (961) marjan_h
»

Android - Začetnik

Oddelek: Programiranje
111794 (1119) hurlimannxt
»

[android] java.lang.RuntimeException

Oddelek: Programiranje
141085 (777) piki12
»

[android] vstavljanje slike

Oddelek: Programiranje
71247 (1144) messi
»

[android] crash

Oddelek: Programiranje
61345 (1154) messi

Več podobnih tem