以下は、WeChat APP パッケージ名を例として、パッケージ名を通じて他の APP にジャンプするコードです。
val intent : Intent?
intent = activity?.packageManager?.getLaunchIntentForPackage("com.tencent.mm")
if (intent == null) {
Log.d("Alex", "intent = $intent")
} else {
startActivity(intent)
}
ログによると、インテントは null ですが、パッケージ名が間違っているか、アプリがアクティビティを開始するように設定されていない場合は、null になります。なぜですか?
一晩ネットで検索した結果、次のような答えが見つかりました。
Android 11 未満では、上記のコードをリダイレクトできますが、Android 11 以降では、パッケージ名のクエリに関連するメソッドが制限されます。
方法 1 : AndroidManifest.xml ファイルで次のようにアクセス許可を構成する必要があります。
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
方法 2 : AndroidManifest.xml ファイルでジャンプ アプリのパッケージ名を次のように構成する必要があります。
<クエリ> <パッケージ android:name="com.tencent.mm"/> </ クエリ>
お願いします:
Android12 バージョン システムでは、Google は QUERY_ALL_PACKAGES 権限をさらに制限しており、アプリケーションが getAllPermissionGroups()、getPermissionGroupInfo()、getPermissionInfo()、queryPermissionsByGroup() の 4 つのインターフェイスを使用する場合、アプリケーションは有効なデータにアクセスするためにこの権限を申請する必要があります。上記の 4 つのインターフェイスは、すべての権限グループのコレクションを取得する、指定された権限グループ名に従って権限グループ情報を取得する、指定された権限に従って権限情報を取得する、および権限グループに従って権限を問い合わせることです。
同時に、Android 12 バージョン システムでは、アプリケーションはカスタム アクティビティを宣言して作成できます。これにより、ユーザーは、アクティビティの開始後にアプリケーションによってユーザーのデバイスに保存されたデータを管理できるようになります。アプリケーションがアクティビティを使用するための前提条件は、アプリケーションに MANAGE_EXTERNAL_STORAGE 権限と QUERY_ALL_PACKAGES 権限の両方が必要であることです。
まあ、また楽しく遊べますね。
一般的な APP パッケージ名は次のとおりです。
// WeChat パッケージ名 com.tencent.mm // スタートアップ クラス名: com.tencent.mm.ui.LauncherUI
//QQ パッケージ名 com.tencent.mobileqq //開始クラス名: com.tencent.mobileqq.activity.HomeActivity
//Alipay パッケージ名: com.eg.android.AlipayGphone //開始クラス名 com.eg.android.AlipayGphone.FastStartActivity
// DingTalk パッケージ名: com.alibaba.android.rimet // スタートアップ クラス名: com.alibaba.android.rimet.biz.home.activity.HomeActivity
//QQ ゾーンのパッケージ名: com.qzone
//QQ モバイルハウスキーパーパッケージ名: com.tencent.qqpimsecure
//Weibo パッケージ名: com.sina.weibo //開始クラス名: com.sina.weibo.EditActivity
//天東亭パッケージ名: com.sds.android.ttpod
// 中国の永久カレンダー パッケージ名: cn.etouch.ecalendar
//百度地図パッケージ名: com.baidu.BaiduMap
//AutoNavi マップのパッケージ名: com.autonavi.minimap //スタートアップ クラス名: com.autonavi.map.activity.SplashActivity
//情報パッケージ名:com.android.mms
//パッケージ名を設定: com.android.settings
//ブラウザパッケージ名: com.android.browser
//電卓パッケージ名: com.android.calculator2
//時計パッケージ名: com.android.desk Clock
//ギャラリーパッケージ名: com.android.gallery3d
//カメラパッケージ名:com.android.hwcamera
//音楽パッケージ名: com.android.mediacenter
//ラジオパッケージ名: com.huawei.android.FMRadio
//レコーダーパッケージ名: com.android.soundrecorder
//UC ブラウザのパッケージ名: com.UCMobile
// Meitu Xiuxiu パッケージ名: com.mt.mtxx.mtxx
//PPTV パッケージ名: com.pplive.androidphone
//Shuqi 無料小説パッケージ名: com.shuqi.controller
//360 モバイル アシスタント パッケージ名: com.qihoo.appstore
//360 ガード パッケージ名: com.qihoo360.mobilesafe
//360 クリーニング マスター パッケージ名: com.qihoo.cleandroid_cn
//Baidu モバイル アシスタント パッケージ名: com.baidu.appsearch
// Pea ポッドのパッケージ名: com.wandoujia.phoenix2
//Mi アプリ ストアのパッケージ名: com.xiaomi.market
//Huawei アプリストアのパッケージ名: com.huawei.appmarket
//Anzhi アプリケーション ストアのパッケージ名: com.hiapk.marketpho
//RE マネージャー パッケージ名: com.speedsoftware.rootexplorer
//PP モバイル アシスタント パッケージ名: com.pp.assistant
//OPPO アプリストアのパッケージ名: com.oppo.market
//Lenovo App Store パッケージ名: com.lenovo.leos.appstore
//アプリケーションパッケージ名: com.tencent.android.qqdownloader