2013-10-09 10 views
8

मैं एक बहुत ही सरल accessibilityService लिखा था और मैं सेटिंग्स/पहुँच/मेरे ऐप में सेवा इस शो को की वर्णन के लिए कोशिश कर रहा हूँ। नीचे मेरा पूरा कोड है जिसे विवरण "हैलो!" पर सेट करना चाहिए लेकिन सेटिंग तब भी पता चलता "कोई विवरण उपलब्ध नहीं"उपयोग सेवा है जो वर्णन

enter image description here

मेरी सेवा:

<service android:name="com.myPackage.IdleService" 
       android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> 
        <meta-data 
        android:name="android.accessibilityservice" 
        android:resource="@xml/accessibility_service_config" /> 
        <intent-filter> 
         <action android:name="android.accessibilityservice.AccessibilityService" /> 
        </intent-filter> 

       </service> 

:

public class IdleService extends AccessibilityService{ 

    int interval = 100; 
    int maxIdleTime = 20000; 
    int idleTime = 0; 
    Handler mHandler; 
    String cProcess; 

    @Override 
    public void onServiceConnected(){ 

     mHandler = new Handler(); 

     AccessibilityServiceInfo info = new AccessibilityServiceInfo(); 
     // we are interested in all types of accessibility events 
     info.describeContents(); 
     info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK; 
     info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC; 
     // we want to receive events in a certain interval 
     info.notificationTimeout = interval; 

     setServiceInfo(info); 

     Log.e("IdleService", " idle service connected!"); 
     statusChecker.run(); 
    } 

    @Override 
    public void onAccessibilityEvent(AccessibilityEvent arg0) 
    { 
     // TODO Auto-generated method stub 
     Log.v("IdleService", "reseting idle time"); 
     idleTime = 0; 
    } 

    @Override 
    public void onInterrupt() 
    { 
     // TODO Auto-generated method stub 
     Log.v("IdleService", "INTERUPTED"); 
    } 

    public void setMaxIdleTimeInSeconds(int time) 
    { 

     maxIdleTime = time *1000; 
    } 


    Runnable statusChecker = new Runnable() 
    { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      ActivityManager am = (ActivityManager) getApplicationContext() 
        .getSystemService(Context.ACTIVITY_SERVICE); 

      List<ActivityManager.RunningTaskInfo> processList = am 
        .getRunningTasks(5); 

      cProcess = processList.get(0).baseActivity.getPackageName(); 

      Log.v("IdleService", "Current PackageName:"+cProcess); 
      cProcess = processList.get(0).baseActivity.getClassName(); 

      Log.v("IdleService", "Current ClassName:"+cProcess); 
      idleTime +=100; 
      Log.v("IdleService", "TICK TOCK, user Idle for:"+idleTime); 
      if(idleTime>=maxIdleTime) 
      { 
       Log.v("IdleService", "we timed out do to inactivity"); 
       //mHandler.postDelayed(statusChecker, interval); 
       //stopSelf(); 
      }else{ 


      } 
      mHandler.postDelayed(statusChecker, interval); 
     } 


    }; 
} 

मेरी प्रकट में मैं सेवा के लिए इस राशि और मेरे res/xml में मेरे पास एक है ccessibility_service_config.xml फ़ाइल:

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
    android:description="@string/accessibility_service_description" 

    android:settingsActivity="com.example.android.accessibility.ServiceSettingsActivity" 
/> 

और अंत में मेरी res/values ​​में/मैं strings.xml जो इस तरह दिखता है:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="accessibility_service_description">Hello!</string> 
</resources> 
+0

मुझे पता है कि यह देर हो चुकी है लेकिन मेरा मानना ​​है कि मुझे एक ही समस्या का सामना करना पड़ रहा है - आपने इस समस्या को हल करने का प्रबंधन कैसे किया? –

उत्तर

संबंधित मुद्दे