私はAccessibilityServiceを正常に動作させていましたが、何らかの理由で開発中に動作を停止しました。私はその理由を見つけることができないようです。私のコードを見て、なぜ動作していないのかを教えてください。アンドロイドアクセシビリティサービスが突然イベントの起動を停止しました
public class MyServicee extends AccessibilityService {
public static final String TAG = "volumeMaster";
@TargetApi(Build.VERSION_CODES.KITKAT)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
List<CharSequence> eventText;
Log.v(TAG, "***** onAccessibilityEvent");
final int eventType = event.getEventType();
switch (eventType) {
case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
break;
}
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED) {
}
}
private String processUSSDText(List<CharSequence> eventText) {
for (CharSequence s : eventText) {
String text = String.valueOf(s);
if (true) {
return text;
}
}
return null;
}
@Override
public void onInterrupt() {
Log.v(TAG, "***** onInterrupt");
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onServiceConnected() {
Log.v(TAG, "***** onServiceConnected");
AccessibilityServiceInfo info = getServiceInfo();
info.eventTypes =
AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED
| AccessibilityEvent.TYPE_VIEW_CLICKED
| AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
info.packageNames = new String[]{"com.whatsapp"};
info.flags = AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
setServiceInfo(info);
super.onServiceConnected();
}
}
はここでマニフェストの関連する部分だ:
<service android:name=".MyServicee"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:enabled="true">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data android:name="android.accessibilityservice"
android:resource="@xml/myservice" />
</service>
はここmyserviceconfig.xmlです:
<accessibility-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeViewClicked|typeNotificationStateChanged|typeWindowStateChanged"
android:accessibilityFeedbackType="feedbackAllMask"
android:canRetrieveWindowContent="true"
android:accessibilityFlags="flagIncludeNotImportantViews|flagRequestFilterKeyEvents"
android:notificationTimeout="1"
android:packageNames="com.whatsapp"
android:settingsActivity="@string/app_name" />
コードは、ユーザーが通話録音サービスを開始したときを検出しようとします。
あなたのリプレイのためにありがとうございます..... @クリスCM ..........しかし、問題は、コードが例外をスローすると、サービスは、残念なことに停止するwhats-appの後に12秒間完璧に動作します。だから私にいくつか提案してください。 – Secret
サービスで例外がスローされている場合は、質問付きのスタックトレースを投稿する必要があります。スタックトレースよりも問題のデバッグに役立つ情報はありません。 – ChrisCM