想在手機返回鍵壞掉時,透過服務獲取當前棧頂 `Activity` 並呼叫 `finish()` 模擬返回。
public class BackKeyService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) { }
@Override
public void onInterrupt() { }
// 外部呼叫此方法觸發返回
public static void simulateBack(Context context) {
Intent intent = new Intent(context, BackKeyService.class);
intent.setAction("ACTION_BACK");
context.startService(intent);
}
@Override
protected void onServiceConnected() {
// 可註冊手勢偵測
}
// 若需全域手勢,覆寫 onGesture
@Override
protected boolean onGesture(int gestureId) {
if (gestureId == GESTURE_SWIPE_RIGHT) { // 或自訂手勢
performGlobalAction(GLOBAL_ACTION_BACK);
return true;
}
return super.onGesture(gestureId);
}
}
<service android:name=".BackKeyService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:label="@string/accessibility_service_label">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accessibility_service_config" />
</service>
無法直接獲取並操作其他應用的 Activity。正確路徑是**無障礙服務**模擬系統返回動作,或**懸浮窗**偵測手勢觸發返回。兩者均需用戶明確授權,符合 Android 安全模型。