Konuyu Paylaş : facebook gplus twitter

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

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FMX Android Push Notification Sorunu rafikhasguller 1 116 17 dakika önce
Son Yorum: Fesih ARSLAN
  FMX.FontGlyphs.Android.pas sorunu BY-HAYALET 4 151 09-04-2018, Saat: 10:53
Son Yorum: BY-HAYALET
  Hedef platformlarda android gözükmüyor boreas 1 111 24-03-2018, Saat: 14:59
Son Yorum: Fesih ARSLAN
  Delphi Android Java kullanmak AliZairov 11 1.203 22-03-2018, Saat: 04:36
Son Yorum: AliZairov
Information Status Bar Android [ÇÖZÜLDÜ] malitutuncu 8 355 27-02-2018, Saat: 09:23
Son Yorum: malitutuncu



Konuyu Okuyanlar: 1 Ziyaretçi