diff --git a/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt b/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt index 2f1a0c0..30214f1 100755 --- a/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt +++ b/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt @@ -1,10 +1,14 @@ package io.sixminutes.ridicule import android.annotation.SuppressLint +import android.content.Intent import android.os.Bundle +import android.provider.Settings import android.util.Log import android.widget.TextView import androidx.activity.enableEdgeToEdge +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat @@ -13,8 +17,16 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch class MainActivity : AppCompatActivity() { - private val gaidHelper by lazy { GAIDHelper(this) } private val TAG = "ridicule" + + private val gaidHelper by lazy { GAIDHelper(this) } + private var accessibilityService: MyAccessibilityService? = null + // ActivityResultLauncher 用于启动无障碍设置页面 + private lateinit var enableAccessibilityLauncher: ActivityResultLauncher + + + + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -25,6 +37,19 @@ class MainActivity : AppCompatActivity() { insets } + getGAID() + + // 初始化 ActivityResultLauncher + enableAccessibilityLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + // 用户从设置页面返回后,再次检查无障碍服务是否可用 + checkAccessibilityService() + } + + // 检查无障碍服务是否可用 + checkAccessibilityService() + } + + private fun getGAID() { // 获取 TextView 的引用 val gaidTextView: TextView = findViewById(R.id.gaid) @@ -50,4 +75,45 @@ class MainActivity : AppCompatActivity() { Log.e(TAG, "Google Play services are not available.") } } + + /** + * 检查无障碍服务是否可用,如果不可用则打开设置页面 + */ + private fun checkAccessibilityService() { + accessibilityService = MyAccessibilityService.getInstance() + if (accessibilityService == null) { + Log.e(TAG, "Accessibility service is not available") + openAccessibilitySettings() + } else { + Log.d(TAG, "Accessibility service is available: $accessibilityService") + continueMainActivityExecution() + } + } + + /** + * 打开无障碍设置页面 + */ + private fun openAccessibilitySettings() { + val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) + enableAccessibilityLauncher.launch(intent) + Log.d(TAG, "Opening accessibility settings") + } + + /** + * 无障碍服务可用后继续执行 MainActivity 的逻辑 + */ + private fun continueMainActivityExecution() { + // 在这里添加 MainActivity 的后续操作,例如更新 UI 或执行其他任务 + Log.d(TAG, "Continuing MainActivity execution after accessibility service is enabled.") + } + + override fun onDestroy() { + super.onDestroy() + } + + // 调用点击功能的方法 + fun simulateTap(x: Int, y: Int) { + accessibilityService?.simulateTap(x, y) + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e9e84c7..ca3f244 100755 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,19 +7,25 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - + + + + \ No newline at end of file