"""App name to package name mapping for supported applications.""" APP_PACKAGES: dict[str, str] = { # Social & Messaging "微信": "com.tencent.mm", "QQ": "com.tencent.mobileqq", "微博": "com.sina.weibo", # E-commerce "淘宝": "com.taobao.taobao", "京东": "com.jingdong.app.mall", "拼多多": "com.xunmeng.pinduoduo", "淘宝闪购": "com.taobao.taobao", "京东秒送": "com.jingdong.app.mall", # Lifestyle & Social "小红书": "com.xingin.xhs", "豆瓣": "com.douban.frodo", "知乎": "com.zhihu.android", # Maps & Navigation "高德地图": "com.autonavi.minimap", "百度地图": "com.baidu.BaiduMap", # Food & Services "美团": "com.sankuai.meituan", "大众点评": "com.dianping.v1", "饿了么": "me.ele", "肯德基": "com.yek.android.kfc.activitys", # Travel "携程": "ctrip.android.view", "铁路12306": "com.MobileTicket", "12306": "com.MobileTicket", "去哪儿": "com.Qunar", "去哪儿旅行": "com.Qunar", "滴滴出行": "com.sdu.did.psnger", # Video & Entertainment "bilibili": "tv.danmaku.bili", "抖音": "com.ss.android.ugc.aweme", "快手": "com.smile.gifmaker", "腾讯视频": "com.tencent.qqlive", "爱奇艺": "com.qiyi.video", "优酷视频": "com.youku.phone", "芒果TV": "com.hunantv.imgo.activity", "红果短剧": "com.phoenix.read", # Music & Audio "网易云音乐": "com.netease.cloudmusic", "QQ音乐": "com.tencent.qqmusic", "汽水音乐": "com.luna.music", "喜马拉雅": "com.ximalaya.ting.android", # Reading "番茄小说": "com.dragon.read", "番茄免费小说": "com.dragon.read", "七猫免费小说": "com.kmxs.reader", # Productivity "飞书": "com.ss.android.lark", "QQ邮箱": "com.tencent.androidqqmail", # AI & Tools "豆包": "com.larus.nova", # Health & Fitness "keep": "com.gotokeep.keep", "美柚": "com.lingan.seeyou", # News & Information "腾讯新闻": "com.tencent.news", "今日头条": "com.ss.android.article.news", # Real Estate "贝壳找房": "com.lianjia.beike", "安居客": "com.anjuke.android.app", # Finance "同花顺": "com.hexin.plat.android", # Games "星穹铁道": "com.miHoYo.hkrpg", "崩坏:星穹铁道": "com.miHoYo.hkrpg", "恋与深空": "com.papegames.lysk.cn", "AndroidSystemSettings": "com.android.settings", "Android System Settings": "com.android.settings", "Android System Settings": "com.android.settings", "Android-System-Settings": "com.android.settings", "Settings": "com.android.settings", "AudioRecorder": "com.android.soundrecorder", "audiorecorder": "com.android.soundrecorder", "Bluecoins": "com.rammigsoftware.bluecoins", "bluecoins": "com.rammigsoftware.bluecoins", "Broccoli": "com.flauschcode.broccoli", "broccoli": "com.flauschcode.broccoli", "Booking.com": "com.booking", "Booking": "com.booking", "booking.com": "com.booking", "booking": "com.booking", "BOOKING.COM": "com.booking", "Chrome": "com.android.chrome", "chrome": "com.android.chrome", "Google Chrome": "com.android.chrome", "Clock": "com.android.deskclock", "clock": "com.android.deskclock", "Contacts": "com.android.contacts", "contacts": "com.android.contacts", "Duolingo": "com.duolingo", "duolingo": "com.duolingo", "Expedia": "com.expedia.bookings", "expedia": "com.expedia.bookings", "Files": "com.android.fileexplorer", "files": "com.android.fileexplorer", "File Manager": "com.android.fileexplorer", "file manager": "com.android.fileexplorer", "gmail": "com.google.android.gm", "Gmail": "com.google.android.gm", "GoogleMail": "com.google.android.gm", "Google Mail": "com.google.android.gm", "GoogleFiles": "com.google.android.apps.nbu.files", "googlefiles": "com.google.android.apps.nbu.files", "FilesbyGoogle": "com.google.android.apps.nbu.files", "GoogleCalendar": "com.google.android.calendar", "Google-Calendar": "com.google.android.calendar", "Google Calendar": "com.google.android.calendar", "google-calendar": "com.google.android.calendar", "google calendar": "com.google.android.calendar", "GoogleChat": "com.google.android.apps.dynamite", "Google Chat": "com.google.android.apps.dynamite", "Google-Chat": "com.google.android.apps.dynamite", "GoogleClock": "com.google.android.deskclock", "Google Clock": "com.google.android.deskclock", "Google-Clock": "com.google.android.deskclock", "GoogleContacts": "com.google.android.contacts", "Google-Contacts": "com.google.android.contacts", "Google Contacts": "com.google.android.contacts", "google-contacts": "com.google.android.contacts", "google contacts": "com.google.android.contacts", "GoogleDocs": "com.google.android.apps.docs.editors.docs", "Google Docs": "com.google.android.apps.docs.editors.docs", "googledocs": "com.google.android.apps.docs.editors.docs", "google docs": "com.google.android.apps.docs.editors.docs", "Google Drive": "com.google.android.apps.docs", "Google-Drive": "com.google.android.apps.docs", "google drive": "com.google.android.apps.docs", "google-drive": "com.google.android.apps.docs", "GoogleDrive": "com.google.android.apps.docs", "Googledrive": "com.google.android.apps.docs", "googledrive": "com.google.android.apps.docs", "GoogleFit": "com.google.android.apps.fitness", "googlefit": "com.google.android.apps.fitness", "GoogleKeep": "com.google.android.keep", "googlekeep": "com.google.android.keep", "GoogleMaps": "com.google.android.apps.maps", "Google Maps": "com.google.android.apps.maps", "googlemaps": "com.google.android.apps.maps", "google maps": "com.google.android.apps.maps", "Google Play Books": "com.google.android.apps.books", "Google-Play-Books": "com.google.android.apps.books", "google play books": "com.google.android.apps.books", "google-play-books": "com.google.android.apps.books", "GooglePlayBooks": "com.google.android.apps.books", "googleplaybooks": "com.google.android.apps.books", "GooglePlayStore": "com.android.vending", "Google Play Store": "com.android.vending", "Google-Play-Store": "com.android.vending", "GoogleSlides": "com.google.android.apps.docs.editors.slides", "Google Slides": "com.google.android.apps.docs.editors.slides", "Google-Slides": "com.google.android.apps.docs.editors.slides", "GoogleTasks": "com.google.android.apps.tasks", "Google Tasks": "com.google.android.apps.tasks", "Google-Tasks": "com.google.android.apps.tasks", "Joplin": "net.cozic.joplin", "joplin": "net.cozic.joplin", "McDonald": "com.mcdonalds.app", "mcdonald": "com.mcdonalds.app", "Osmand": "net.osmand", "osmand": "net.osmand", "PiMusicPlayer": "com.Project100Pi.themusicplayer", "pimusicplayer": "com.Project100Pi.themusicplayer", "Quora": "com.quora.android", "quora": "com.quora.android", "Reddit": "com.reddit.frontpage", "reddit": "com.reddit.frontpage", "RetroMusic": "code.name.monkey.retromusic", "retromusic": "code.name.monkey.retromusic", "SimpleCalendarPro": "com.scientificcalculatorplus.simplecalculator.basiccalculator.mathcalc", "SimpleSMSMessenger": "com.simplemobiletools.smsmessenger", "Telegram": "org.telegram.messenger", "temu": "com.einnovation.temu", "Temu": "com.einnovation.temu", "Tiktok": "com.zhiliaoapp.musically", "tiktok": "com.zhiliaoapp.musically", "Twitter": "com.twitter.android", "twitter": "com.twitter.android", "X": "com.twitter.android", "VLC": "org.videolan.vlc", "WeChat": "com.tencent.mm", "wechat": "com.tencent.mm", "Whatsapp": "com.whatsapp", "WhatsApp": "com.whatsapp", } def get_package_name(app_name: str) -> str | None: """ Get the package name for an app. Args: app_name: The display name of the app. Returns: The Android package name, or None if not found. """ return APP_PACKAGES.get(app_name) def get_app_name(package_name: str) -> str | None: """ Get the app name from a package name. Args: package_name: The Android package name. Returns: The display name of the app, or None if not found. """ for name, package in APP_PACKAGES.items(): if package == package_name: return name return None def list_supported_apps() -> list[str]: """ Get a list of all supported app names. Returns: List of app names. """ return list(APP_PACKAGES.keys())