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
  Image Index numarasını alma ahmetb 0 4 4 saat önce
Son Yorum: ahmetb
  Listview data verilerini alma ahmetb 12 363 16-09-2018, Saat: 16:17
Son Yorum: ahmetb
  gelen arama listesini alma erdogan 12 354 07-09-2018, Saat: 12:46
Son Yorum: mrmarman
  styleden text adlarını alma YasinDalli 6 253 07-09-2018, Saat: 11:59
Son Yorum: YasinDalli
  Firemonkey Android ile OCR ve Mifare - NFC - RFID Kütüphaneleri Abdullah ILGAZ 14 833 03-09-2018, Saat: 12:42
Son Yorum: adelphiforumz



Konuyu Okuyanlar: 1 Ziyaretçi