Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Android Servis sms bilgilerini alma
#1
Merhaba;
Nacizane bir sorum olacaktı
Normal bir android uygulamasında aşağıdaki fonksiyon ile telefon sms bilgilerini alabiliyorum 
fakat bu fonksiyonu uygulamaya dahil ettiğim android local servis içinde kullandığımda uygulama kitleniyor (gerekli izinleri true yapıyorum)

uses Androidapi.JNI.Net,  Androidapi.JNI.JavaTypes,  Androidapi.JNI.Telephony,
...........
function ReadSMSInbox: tstringlist;
var
 cursor: JCursor;
 uri: Jnet_Uri;
 address,person,msgdatesent,protocol,msgread,msgstatus,msgtype,
 msgreplypathpresent,subject,body,
 servicecenter,locked:string;
 msgunixtimestampms:int64;

begin
 Result := TStringList.Create;

 uri:=StrToJURI('content://sms/inbox');

cursor := SharedActivity.getContentResolver.query(uri, nil, nil,nil,nil);

 while (cursor.moveToNext) do begin
   address:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('address'))));
   person:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('person'))));
   msgunixtimestampms:=cursor.getLong(cursor.getColumnIndex(StringToJstring('date')));
   msgdatesent:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('date_sent'))));
   protocol:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('protocol'))));
   msgread:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('read'))));
   msgstatus:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('status'))));
   msgtype:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('type'))));
   msgreplypathpresent:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('reply_path_present'))));
   subject:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('subject'))));
   body:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('body'))));
   servicecenter:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('service_center'))));
   locked:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('locked'))));
   Result.add(IntToStr(trunc(msgunixtimestampms/1000))+' '+address+' '+body);  

 end;
end;



android serviste fonksiyonun kullanıldığı yer

function TDM.AndroidServiceStartCommand(const Sender: TObject;
 const Intent: JIntent; Flags, StartId: Integer): Integer;
var
mesajlar:tstringlist;
begin
Result := TJService.JavaClass.START_STICKY;
mesajlar:= TStringList.Create; 
mesajlar:=  ReadSMSInbox();
end;



fonksiyon içinde kilitleyen, problem çıkaran bölüm burası 

 cursor := SharedActivity.getContentResolver.query(uri, nil, nil,nil,nil);

çünkü android servis build sırasında aşağıdaki uyarı mesajı geliyor 
[DCC Warning] s2u.pas(55): W1000 Symbol 'SharedActivity' is deprecated: 'Use TAndroidHelper.Activity' 
 Mesaja göre SharedActivity yerine TAndroidHelper.Activity yazıyorum aşağıdaki gibi

 cursor := TAndroidHelper.Activity.getContentResolver.query(uri, nil, nil,nil,nil);

fakat uygulama yine kitleniyor bir şey değişmiyor.

benzer kodlar olan ve SharedActivity.getContentResolver.query(uri, nil, nil,nil,nil); kodunu kullanan
rehber okuma, araya kaydı okuma fonksiyonlarında da aynı kilitlenme problemi oluyor(normal uygulamada çalışıyor)

internette arama yapmama rağmen bu konuda bir çözüm bulamadım. kaynak çok az

acaba problemin nedeni ve çözümü ne olabilir ?
Cevapla
#2
Konunun üzerinden bayağı geçmiş ama cevaplanmayan soru kalmaması için,

Servisler Activity kullanmadığı için SharedActivity yerine TAndroidHelper.ContentResolver kullanmalısın.
Cevapla
#3
Cevap için teşekkürler , farklı bir ihtiyaç için gerekli olabilir.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Android Rehbere Kayıt Ekleme barissagir 6 298 04-04-2024, Saat: 09:36
Son Yorum: RAD Coder
  Android’de Dosya Depolama ve Paylaşma-2: And 11 SDK 30 Scoped Storage SAF MediaStore emozgun 12 4.903 19-03-2024, Saat: 22:29
Son Yorum: nguzeller
  Android 33 api sdk güncelleme [ÇÖZÜLDÜ] codder71 4 436 19-02-2024, Saat: 22:38
Son Yorum: codder71
  Mobil Android Emulator Altıner 5 387 22-01-2024, Saat: 18:28
Son Yorum: Altıner
  Firebird Android bağlantı aeyeci 2 288 01-01-2024, Saat: 14:41
Son Yorum: nguzeller



Konuyu Okuyanlar: 1 Ziyaretçi