小编Ups*_*own的帖子

getApplicationInfo(String,int) 已弃用,替代方案是什么?

我已经将targetSdkVersion和compileSdkVersion升级到33。

现在收到警告 getApplicationInfo(String,int) 已弃用。

建议使用 getApplicationInfo(java.lang.String, android.content.pm.PackageManager.ApplicationInfoFlags) 代替。任何人都可以帮助我使用更新的方法。

例子:

@SuppressLint("HardwareIds")
    public void initDbx(){
        try {
            ApplicationInfo app = activity.getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);
            dbx.game_id      = String.valueOf(app.metaData.getInt("main_id"));
            dbx.game_name    = activity.getResources().getString(R.string.app_name);
            dbx.package_name = activity.getApplication().getPackageName();
            dbx.user_id      = Settings.Secure.getString(activity.getContentResolver(), Settings.Secure.ANDROID_ID);
            dbx.check_net    = isConnectionAvailable();
            //dbx.getUserInfos(activity);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,我这样做了:

    @SuppressLint("HardwareIds")
    public void initDbx(){
        try {
//            ApplicationInfo app = activity.getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);

            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) {
                ApplicationInfo app = activity.getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.ApplicationInfoFlags.of(0));
            }else{
                ApplicationInfo app = activity.getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);
            }
            
            dbx.game_id      = String.valueOf(app.metaData.getInt("main_id"));
            dbx.game_name …
Run Code Online (Sandbox Code Playgroud)

navigation android kotlin deprecation-warning android-tiramisu

9
推荐指数
1
解决办法
5176
查看次数