folder Tahribat.com Forumları
linefolder Android - IOS Programlama
linefolder Android Diğer Uygulamanın Kullanım Süresini Çekmek



Android Diğer Uygulamanın Kullanım Süresini Çekmek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadLyShadoW
    DeadLyShadoW's avatar
    Kayıt Tarihi: 28/Eylül/2009
    Erkek

    Kardeşlerim merhaba, 

    Benim bir sorunum var. Ben Android app de diğer uygulamaların bir telefondaki kullanım sürelerini çekmeye çalışıyorum. Bunun iki yolu normalde data sharing sekilde gözüküyor internette tam istediğim bu mu onu da bilmiyorum. Bu yollar ise şu şekilde; intent ve content provider ile oluyor. Ancak intent ile gerçekleştirilen karşı uygulamanın seninle shared ettiği image ya da textler çekebiliyorsun. Provider ise URI paylaşıyor ve onu belli süre kullandiriyor diye anladım.(content provider dan tam emin değilim) 

    Ancak benim istediğim mesela Twitter ne kadar kullanıldıysa kaç saat kullanıldıysa o datayı çekmek eğer bu data get işlemini  bilenler varsa paylaşırsa sevinirim. 


    Batmayacağına inanarak suya bas,yürür gidersin... Mucize yürüyebilmen değil inanabilmendir. - Seyyid Ahmet Arvasi
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadLyShadoW
    DeadLyShadoW's avatar
    Kayıt Tarihi: 28/Eylül/2009
    Erkek

    Up gelsin


    Batmayacağına inanarak suya bas,yürür gidersin... Mucize yürüyebilmen değil inanabilmendir. - Seyyid Ahmet Arvasi
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    selam,

    api seviyen 21 in altındaysa o zaman getRunningTasks metodunu kullanabilirsin, ancak sonraki api seviyelerinde metod yürürlükten kaldırıldı güvenlik açığı oluşturacağı için.

    Bunun yerine RunningAppProcessInfo metodunu kullanabilirsin

    http://developer.android.com/reference/android/app/ActivityManager.RunningAppProcessInfo.html 

    ancak sana zaman bilgsini vermiyor.. 

    Ancak kendin bir listener yapabilirsin, böylece hangi uygulamanın ne kadar çalışıp çalışmadığını kontrol ettirebilirsin. Sonuçta elinde PID, package ismi gibi bilgiler olacak

    buradaki video fikir verecektir..

    http://www.itcuties.com/android/how-to-get-running-process-list-and-traffic-statistics/

    bunun haricinde üsttekine ek olarak/harici olarak yapabileceğin bir yol daha var. API seviyesi 22 (5.1) ve sonrası için android.app.usage kullanabilirsin..

    Bu sana geçmiş ile ilgili bilgi verecektir. Sqlite ile her app için bilgileri kaydedersin, buradan dönen bilgiler ile en son çalışma zamanı arasındaki farkı hesaplayıp toplam zamanı bulabilirsin.

    şöyle ki; uygulama en son şu gün şu saatte çalışmış diyelim, bunu db ye kaydet, daha sonra uygulama kapandığında haberin olsun (en üstte verdiğim runningappprocessinfo), böylece uygulamanın kapandığını anlayabilirsin ve dbdeki son çalışma zamanı ile kapandığı zaman arasındaki farkı alıp çalışma zamanını bulup kaydedebilirsin.. Aynı şeyi altta verdiğim android.app.usage ile de son çalışma zamanını alabilirsin, ve bu class ın da bir eventi var.. 

    burada bir örnek var https://github.com/googlesamples/android-AppUsageStatistics

    bunun üzerinden gidebilirsin.

    hem android.app.usage hem de RunningAppProcessInfo kullanarak iyi bir şekilde çözebilirsin. Biraz uğraştırıcı bir iş ama madem bir şey yapmak istiyorsun uğraşacaksın :)

     

    kolay gelsin

     

     

     

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Listener şeklinde yaparsa aktif wakelock oluşturmayacak mı?

    better battery saver'daki watchdog yada monitoring kısmında vardı. pil kullanımını arttırabilir diye uyarı veriyor.

    runningappprocessinfo il sürekli dinlemek gereksiz wakelock oluştururmu? uygulama fikrim var benimde :)

    dip not: senin aradığın intent değil bence.


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    listener olmadan nasıl double way iletişim kurulur ki? her şeyin arkasında bu var hocam.. android in arkaplanda çalışan yığınla uygulaması var ve hepsin bu olay var, mesela mail geldiğinde nasıl haberin oluyor? ya da whatsapp dan biri yazdığında nasıl haberin oluyor? callback olması lazım.. uygulama arkaplanda çalışır ve dinler..

    java için açık kaynak bir servis kütüphanesi var cometD.. http://cometd.org/documentation/cometd-java/client/subscription

    bunu incelersen olayın mantığını daha iyi anlarsın, gayet başarılı çalışıyor, bunun .net wrapperini çalıştığım firmada kullanmıştık ve gayet performanslı çalışıyordu.. burdaki mantık da kanallar üzerinden hareket etmesi, böylece birden fazla kanal için farklı listenelerlar oluşturabilirsin

    mesela bir kanal mesaj iletsin, diğer kanal resim, diğer kanal hataları.. 

    mantık bu şekilde çalışır arkaplanda, kullanıcı hatta yazılımcı bilmez ama böyledir.


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadLyShadoW
    DeadLyShadoW's avatar
    Kayıt Tarihi: 28/Eylül/2009
    Erkek

    @unbalanced baba çok teşekkür ediyorum, saolasın. Burdan yürümeye çalışacağım :) bir sıkıntı olursa seni yine darlıyabilirim :) 

    @noktalıvirgül  sana tekrar teşekkür ediyorum ayrıca. 


    Batmayacağına inanarak suya bas,yürür gidersin... Mucize yürüyebilmen değil inanabilmendir. - Seyyid Ahmet Arvasi
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    İlk posttaki soruya cevap değil ama cometd örneği verildiği için yazıyorum.

    Android özelinde event-bus pattern'ına bakacaksanız EventBus ve otto kütüphanelerini mutlaka incelemek lazım.


    Sen hiç kaval çaldın mı?