08-11-2017, Saat: 15:07
(Son Düzenleme: 08-11-2017, Saat: 15:17, Düzenleyen: Tuğrul HELVACI.
Sebep: Lütfen kodları Delphi kod etiketi ile işaretleyiniz.
)
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)
android serviste fonksiyonun kullanıldığı yer
fonksiyon içinde kilitleyen, problem çıkaran bölüm burası
çü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
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 ?
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 ?