Tôi đã viết một AccessibilityService rất đơn giản và tôi đang cố gắng để có mô tả của dịch vụ hiển thị trong Cài đặt/trợ năng/ứng dụng của tôi. Dưới đây là tất cả mã của tôi nên đặt mô tả thành "Xin chào!" nhưng các thiết lập vẫn cho thấy "không có mô tả"Accessibility Mô tả dịch vụ
dịch vụ của tôi:
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);
}
};
}
trong manifest của tôi có điều này cho các dịch vụ:
<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>
và trong my res/xml i có một ccessibility_service_config.xml file:
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/accessibility_service_description"
android:settingsActivity="com.example.android.accessibility.ServiceSettingsActivity"
/>
và cuối cùng trong res của tôi/values / i có strings.xml mà trông như thế này:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="accessibility_service_description">Hello!</string>
</resources>
Tôi biết đã muộn nhưng tôi tin rằng tôi đang đối mặt với cùng một vấn đề chính xác - Bạn đã xoay sở để giải quyết vấn đề này như thế nào? –