本文整理汇总了Java中android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_SPOKEN属性的典型用法代码示例。如果您正苦于以下问题:Java AccessibilityServiceInfo.FEEDBACK_SPOKEN属性的具体用法?Java AccessibilityServiceInfo.FEEDBACK_SPOKEN怎么用?Java AccessibilityServiceInfo.FEEDBACK_SPOKEN使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类android.accessibilityservice.AccessibilityServiceInfo
的用法示例。
在下文中一共展示了AccessibilityServiceInfo.FEEDBACK_SPOKEN属性的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onServiceConnected
@Override
protected void onServiceConnected() {
super.onServiceConnected();
registerScreenReceiver();
if (BuildConfig.DEBUG) {
Log.d(TAG, "onServiceConnected: ");
}
sIsEnable = true;
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = TYPE_WINDOW_CONTENT_CHANGED | TYPE_WINDOWS_CHANGED | TYPE_WINDOW_STATE_CHANGED | TYPE_NOTIFICATION_STATE_CHANGED;
// If you only want this service to work with specific applications, set their
// package names here. Otherwise, when the service is activated, it will listen
// to events from all applications.
info.packageNames = new String[]{Constant.QQ_PKG};
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
// info.flags = AccessibilityServiceInfo.DEFAULT;
info.notificationTimeout = 100;
this.setServiceInfo(info);
setState(new IdleState(this));
}
示例2: provideScreenStateChangeFeedback
/**
* Provides feedback to announce the screen state change. Such a change
* is turning the screen on or off.
*
* @param feedbackIndex The index of the feedback in the statically
* mapped feedback resources.
*/
private void provideScreenStateChangeFeedback(int feedbackIndex) {
// We take a specific action depending on the feedback we currently provide.
switch (mProvidedFeedbackType) {
case AccessibilityServiceInfo.FEEDBACK_SPOKEN:
String utterance = generateScreenOnOrOffUtternace(feedbackIndex);
mHandler.obtainMessage(MESSAGE_SPEAK, utterance).sendToTarget();
return;
case AccessibilityServiceInfo.FEEDBACK_AUDIBLE:
mHandler.obtainMessage(MESSAGE_PLAY_EARCON, feedbackIndex, 0).sendToTarget();
return;
case AccessibilityServiceInfo.FEEDBACK_HAPTIC:
mHandler.obtainMessage(MESSAGE_VIBRATE, feedbackIndex, 0).sendToTarget();
return;
default:
throw new IllegalStateException("Unexpected feedback type "
+ mProvidedFeedbackType);
}
}
示例3: onServiceConnected
@Override
protected void onServiceConnected() {
super.onServiceConnected();
AccessibilityServiceInfo mAccessibilityServiceInfo = new AccessibilityServiceInfo();
mAccessibilityServiceInfo.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
mAccessibilityServiceInfo.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
mAccessibilityServiceInfo.packageNames = HiApplication.packageList.toArray(new String[]{});
setServiceInfo(mAccessibilityServiceInfo);
}
示例4: onServiceConnected
@Override
public void onServiceConnected() {
AccessibilityServiceInfo info = getServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED |
AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED
| AccessibilityEvent.TYPE_VIEW_SCROLLED
| AccessibilityEvent.TYPE_VIEW_CLICKED;
info.packageNames = packages;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
info.notificationTimeout = 100;
ReflectUtils.setFieldValue(info, "mCapabilities", info.getCapabilities() | AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT);
this.setServiceInfo(info);
BaseAccessibility.isEnable.set(true);
if (needClearTask) {
InstallAccessibility.openSettingAccessibilityNeedTips(this);
MyAccessibility.needClearTask = false;
LocalAccessibilityManager.getInstance().notifyAccessibilityChanged(true);
}
// StatHelper.onSmartInstallEvent(StatFieldConst.SmartInstaller.Action.ACTION_SMARTINSC);
LogUtils.d("BaseAccessibility", "onServiceConnected:" + BaseAccessibility.isEnable.get());
SmartInstaller.logPrint("processAccessibilityEnvent onServiceConnected= " + BaseAccessibility.isEnable.get()
+ " autoClickNumber=" + BaseAccessibility.autoClickNumber);
}
示例5: feedbackTypeToString
/**
* Returns the string representation of a feedback type. For example,
* {@link AccessibilityServiceInfo#FEEDBACK_SPOKEN} is represented by the
* string FEEDBACK_SPOKEN.
*
* @param feedbackType The feedback type.
* @return The string representation.
*/
public static String feedbackTypeToString(int feedbackType) {
StringBuilder builder = new StringBuilder();
builder.append("[");
while (feedbackType > 0) {
final int feedbackTypeFlag = 1 << Integer.numberOfTrailingZeros(feedbackType);
feedbackType &= ~feedbackTypeFlag;
if (builder.length() > 1) {
builder.append(", ");
}
switch (feedbackTypeFlag) {
case AccessibilityServiceInfo.FEEDBACK_AUDIBLE:
builder.append("FEEDBACK_AUDIBLE");
break;
case AccessibilityServiceInfo.FEEDBACK_HAPTIC:
builder.append("FEEDBACK_HAPTIC");
break;
case AccessibilityServiceInfo.FEEDBACK_GENERIC:
builder.append("FEEDBACK_GENERIC");
break;
case AccessibilityServiceInfo.FEEDBACK_SPOKEN:
builder.append("FEEDBACK_SPOKEN");
break;
case AccessibilityServiceInfo.FEEDBACK_VISUAL:
builder.append("FEEDBACK_VISUAL");
break;
}
}
builder.append("]");
return builder.toString();
}
示例6: onServiceConnected
@Override
protected void onServiceConnected() {
super.onServiceConnected();
AccessibilityServiceInfo mAccessibilityServiceInfo = new AccessibilityServiceInfo();
// ��Ӧ�¼������ͣ�������ȫ������Ӧ�¼��������������������ȣ�
mAccessibilityServiceInfo.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
// �������û������ͣ�������������ʾ
mAccessibilityServiceInfo.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
// ���˵İ���
mAccessibilityServiceInfo.packageNames = packageNames;
}
示例7: configureForRingerMode
/**
* Configures the service according to a ringer mode. Possible
* configurations:
* <p>
* 1. {@link AudioManager#RINGER_MODE_SILENT}<br/>
* Goal: Provide only custom haptic feedback.<br/>
* Approach: Take over the haptic feedback by configuring this service to provide
* such and do so. This way the system will not call the default haptic
* feedback service KickBack.<br/>
* Take over the audible and spoken feedback by configuring this
* service to provide such feedback but not doing so. This way the system
* will not call the default spoken feedback service TalkBack and the
* default audible feedback service SoundBack.
* </p>
* <p>
* 2. {@link AudioManager#RINGER_MODE_VIBRATE}<br/>
* Goal: Provide custom audible and default haptic feedback.<br/>
* Approach: Take over the audible feedback and provide custom one.<br/>
* Take over the spoken feedback but do not provide such.<br/>
* Let some other service provide haptic feedback (KickBack).
* </p>
* <p>
* 3. {@link AudioManager#RINGER_MODE_NORMAL}
* Goal: Provide custom spoken, default audible and default haptic feedback.<br/>
* Approach: Take over the spoken feedback and provide custom one.<br/>
* Let some other services provide audible feedback (SounBack) and haptic
* feedback (KickBack).
* </p>
*
* @param ringerMode The device ringer mode.
*/
private void configureForRingerMode(int ringerMode) {
if (ringerMode == AudioManager.RINGER_MODE_SILENT) {
// When the ringer is silent we want to provide only haptic feedback.
mProvidedFeedbackType = AccessibilityServiceInfo.FEEDBACK_HAPTIC;
// Take over the spoken and sound feedback so no such feedback is provided.
setServiceInfo(AccessibilityServiceInfo.FEEDBACK_HAPTIC
| AccessibilityServiceInfo.FEEDBACK_SPOKEN
| AccessibilityServiceInfo.FEEDBACK_AUDIBLE);
// Use only an earcon to announce ringer state change.
mHandler.obtainMessage(MESSAGE_PLAY_EARCON, INDEX_RINGER_SILENT, 0).sendToTarget();
} else if (ringerMode == AudioManager.RINGER_MODE_VIBRATE) {
// When the ringer is vibrating we want to provide only audible feedback.
mProvidedFeedbackType = AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
// Take over the spoken feedback so no spoken feedback is provided.
setServiceInfo(AccessibilityServiceInfo.FEEDBACK_AUDIBLE
| AccessibilityServiceInfo.FEEDBACK_SPOKEN);
// Use only an earcon to announce ringer state change.
mHandler.obtainMessage(MESSAGE_PLAY_EARCON, INDEX_RINGER_VIBRATE, 0).sendToTarget();
} else if (ringerMode == AudioManager.RINGER_MODE_NORMAL) {
// When the ringer is ringing we want to provide spoken feedback
// overriding the default spoken feedback.
mProvidedFeedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
setServiceInfo(AccessibilityServiceInfo.FEEDBACK_SPOKEN);
// Use only an earcon to announce ringer state change.
mHandler.obtainMessage(MESSAGE_PLAY_EARCON, INDEX_RINGER_NORMAL, 0).sendToTarget();
}
}
示例8: onAccessibilityEvent
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Log.i(LOG_TAG, mProvidedFeedbackType + " " + event.toString());
// Here we act according to the feedback type we are currently providing.
if (mProvidedFeedbackType == AccessibilityServiceInfo.FEEDBACK_SPOKEN) {
mHandler.obtainMessage(MESSAGE_SPEAK, formatUtterance(event)).sendToTarget();
} else if (mProvidedFeedbackType == AccessibilityServiceInfo.FEEDBACK_AUDIBLE) {
mHandler.obtainMessage(MESSAGE_PLAY_EARCON, event.getEventType(), 0).sendToTarget();
} else if (mProvidedFeedbackType == AccessibilityServiceInfo.FEEDBACK_HAPTIC) {
mHandler.obtainMessage(MESSAGE_VIBRATE, event.getEventType(), 0).sendToTarget();
} else {
throw new IllegalStateException("Unexpected feedback type " + mProvidedFeedbackType);
}
}
示例9: onInterrupt
@Override
public void onInterrupt() {
// Here we act according to the feedback type we are currently providing.
if (mProvidedFeedbackType == AccessibilityServiceInfo.FEEDBACK_SPOKEN) {
mHandler.obtainMessage(MESSAGE_STOP_SPEAK).sendToTarget();
} else if (mProvidedFeedbackType == AccessibilityServiceInfo.FEEDBACK_AUDIBLE) {
mHandler.obtainMessage(MESSAGE_STOP_PLAY_EARCON).sendToTarget();
} else if (mProvidedFeedbackType == AccessibilityServiceInfo.FEEDBACK_HAPTIC) {
mHandler.obtainMessage(MESSAGE_STOP_VIBRATE).sendToTarget();
} else {
throw new IllegalStateException("Unexpected feedback type " + mProvidedFeedbackType);
}
}
示例10: setDynamicContent
/**
* Set the content this service should be receiving
*/
private void setDynamicContent() {
if (DEBUG) {
MyLog.i(CLS_NAME, "setDynamicContent: interceptGoogle: " + initInterceptGoogle);
MyLog.i(CLS_NAME, "setDynamicContent: announceNotifications: " + initAnnounceNotifications);
}
if (!initInterceptGoogle && !initAnnounceNotifications) {
if (DEBUG) {
MyLog.i(CLS_NAME, "setDynamicContent: none required: finishing");
}
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
// this.disableSelf();
// }
//
// this.stopSelf();
} else {
if (DEBUG) {
MyLog.i(CLS_NAME, "setDynamicContent: updating content");
}
final AccessibilityServiceInfo serviceInfo = new AccessibilityServiceInfo();
serviceInfo.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
serviceInfo.flags = AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
serviceInfo.notificationTimeout = UPDATE_TIMEOUT;
if (initInterceptGoogle && initAnnounceNotifications) {
serviceInfo.eventTypes = AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED
| AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED
| AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
} else if (initInterceptGoogle) {
serviceInfo.packageNames = new String[]{Installed.PACKAGE_NAME_GOOGLE_NOW};
serviceInfo.eventTypes = AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED
| AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED;
} else {
serviceInfo.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
}
this.setServiceInfo(serviceInfo);
}
}