Update: 2026-07-31 03:00:06

This commit is contained in:
Hamza-Ayed
2026-07-31 03:00:06 +03:00
parent 7a576b7327
commit f94a9478ac
13 changed files with 1609 additions and 20 deletions
@@ -36,6 +36,8 @@
<queries>
<package android:name="com.whatsapp" />
<package android:name="com.google.android.apps.maps" />
<!-- لفحص توفّر خدمات جوجل (أجهزة هواوي بلا GMS) -->
<package android:name="com.google.android.gms" />
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
@@ -20,8 +20,21 @@ import kotlin.concurrent.schedule
class MainActivity : FlutterFragmentActivity() {
private val SECURITY_CHANNEL = "com.siro.siro_driver/security"
private val APP_CONTROL_CHANNEL = "com.siro.siro_driver/app_control"
private val DEVICE_SERVICES_CHANNEL = "com.siro.siro_driver/device_services"
private var appControlChannel: MethodChannel? = null
/**
* هل خدمات جوجل مثبّتة ومفعّلة؟ يتطلب إدخال <queries> في المانيفست
* حتى تكون الحزمة مرئية على أندرويد 11+.
*/
private fun isGmsAvailable(): Boolean =
try {
val info = packageManager.getApplicationInfo("com.google.android.gms", 0)
info.enabled
} catch (e: Exception) {
false
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
@@ -37,6 +50,20 @@ class MainActivity : FlutterFragmentActivity() {
}
}
// Channel for device service availability (GMS vs Huawei/AOSP).
// نفحص الحزمة مباشرة بدل GoogleApiAvailability لأن الأخيرة قد لا
// تكون على الـ classpath أصلاً على أجهزة بلا خدمات جوجل.
MethodChannel(
flutterEngine.dartExecutor.binaryMessenger,
DEVICE_SERVICES_CHANNEL
)
.setMethodCallHandler { call, result ->
when (call.method) {
"isGmsAvailable" -> result.success(isGmsAvailable())
else -> result.notImplemented()
}
}
// Channel for app control (bringing to foreground)
appControlChannel?.setMethodCallHandler { call, result ->
when (call.method) {