Soru & Cevap

istek üzerine arkaplanda çalışan servis

06.01.2014 - 02:41

Merhabalar,
ilgili bir metodu dışarıda istek geldiğinde arkaplanda nasıl çalışmasını sağlayabilirim acaba ?
yani ben cihaz'a dışardan bir istek göndermek istiyorum ve bu istek cihaz'a ulaştığında arkaplanda benim yazmıs oldugum belli bir metodu çağıracak.

yardımlarınız için şimdiden teşekkürler.

10 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-4777-1387239531.jpg
ersinayaz
06.01.2014 - 05:44

Cevabınız için teşekkürler aklıma başka bir senaryo geldi aslında. BroadcastReceiver ile sms okusam, ve bu sms geldiginde metodu işleme soksam sanırım sms maliyeti oluşsa bile istediğime ulaşabiliyorum. fakat BroadcastReceiver  ile gelen sms'i kullanıcı ya yansıtmadan okuyup silebilirmiyim acaba. konu farklı biryere uzanıyor farkındayım ama yardımlarınız çok işime yarıyor gerçekten.
teşekkürler

Ersin Ayaz
06.01.2014 - 06:04
ilgili intent-filter'a priority degerini öncelikli yapıp onRecive metodunda da abortBroadcast(); yaptığımda amacıma ulaşmış oldum. ilgi ve alakanız için teşekkürler.
Caner Güral
06.01.2014 - 09:46
bu yöntem her cihazda aynı sonucu veremeyebiliyor. hatta bazı cihazlardaki güvenlik yazılımları böyle şeyleri kullanıcıya açık da edebiliyor. bir kenarda bilgi olarak dursun. kolaylıklar dilerim.
picture-3606-1408610132.jpg
cgural
06.01.2014 - 04:21

Başka senaryolar olacaktır ancak benim aklıma GCM ile şöyle bir senaryo geldi:

-Uygulamanızı Google Cloud API ile konuşur bir hale getirmeniz gerekir. Dolayısıyla bir sunucu ihtiyacınız doğacak. Sunucunuzdan GCM'ye, oradan da GCM'ye kendini uygulamanız sayesinde kaydetmiş cihazlara ileti gönderebilesiniz diye.

-Uygulamanızın, kullanıcının cihazına kurulu Google Play Services sayesinde GCM'den gelen mesajları alabilecek bir BroadCastReceiver'ı olmalı ki GCM kullanacaksanız bu zorunlu. (Bkz: Implementing GCM Client)

-Bu Receiver'a gelen mesaja göre bir Service'ı ayağa kaldırabilirsiniz.

-Yazacağınız bu Service sınıfı ile tabi gerekli izinleri de aldıysanız istediğiniz bilgiyi uzaktaki bir sunucuya gönderebilirsiniz.

GCM size karışık gelecekse, HTML5'teki WebSocket'e benzer bir yapıyı yalnızca sunucunuz ile kendi uygulamanız arasında olacak şekilde kurabilirsiniz. Uygulamanız, sunucunuz ile bir soket bağlantısı oluşturur ve cihazı sürekli ayakta tutar. Tabi eğer böyle gerekiyorsa. Belki cihaz uyurken onu ayakta tutma zorunluluğunuz yoktur (Aksi halde WAKE_LOCK iznini almanız gerekecektir) Sunucu bir veri gönderdiğinde uygulamanız ona göre eylem yapar. 

Burada daha çok BroadcastReceiver ile Service ve onun IntentService gibi doğrudan alt sınıflarını kullanmanız gerekecektir ağırlıkla.