Update: 2026-07-31 03:00:06
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user