8
मैं एक बहुत ही सरल accessibilityService लिखा था और मैं सेटिंग्स/पहुँच/मेरे ऐप में सेवा इस शो को की वर्णन के लिए कोशिश कर रहा हूँ। नीचे मेरा पूरा कोड है जिसे विवरण "हैलो!" पर सेट करना चाहिए लेकिन सेटिंग तब भी पता चलता "कोई विवरण उपलब्ध नहीं"उपयोग सेवा है जो वर्णन
मेरी सेवा:
<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>
मुझे पता है कि यह देर हो चुकी है लेकिन मेरा मानना है कि मुझे एक ही समस्या का सामना करना पड़ रहा है - आपने इस समस्या को हल करने का प्रबंधन कैसे किया? –