package expo.modules.appchecker import android.content.pm.PackageManager import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod class AppCheckerModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { private val context = reactContext override fun getName(): String = "AppChecker" /** * 判断指定包名的 App 是否安装 * @param packageName 完整包名,如 "com.whatsapp" * @param promise 返回 true/false */ @ReactMethod fun checkAppExists(packageName: String, promise: Promise) { val pm: PackageManager = context.packageManager try { pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES) promise.resolve(true) } catch (e: PackageManager.NameNotFoundException) { promise.resolve(false) } catch (e: Exception) { promise.reject("APP_CHECK_ERROR", "Error checking app: ${e.message}", e) } } }