如何从Unity中的插件中获得Java Drawables

本文关键字:Java Drawables 插件 Unity | 更新日期: 2023-09-27 18:19:46

我正在尝试为Unity中的纸板应用程序制作一个启动器。

我的问题是,Unity没有提供一种将所有VR应用程序安装在手机中的方法(至少我不知道),所以我尝试用Java制作一个插件来实现这一点。一切都很好,我可以用Java获得ApplicationInfo的列表,这样我就可以向Unity发送信息,比如它们的数量和名称。

我的问题是,我无法发送应用程序图标的图像,因为Java使用Drawable从PackageManager.getApplicationIcon()获取它,我无法从Unity访问它。

我试过这个:

private List<ApplicationInfo> cbApps; //list of ApplicationInfo already initialized
    public int[] getIcon(int i) {
        BitmapDrawable icon= (BitmapDrawable)getPackageManager().getApplicationIcon(cbApps.get(i));
        int[] result= new int[icon.getIntrinsicWidth()*icon.getIntrinsicHeight()];
        int p = 0;
        for(int j=0;j<icon.getIntrinsicWidth();j++)
            for(int k=0;k<icon.getIntrinsicHeight();k++){
                result[p]=icon.getBitmap().getPixel(j,k);
            }
        return result;
    }

但它只返回一个满是零的数组(有时是一个非常双正数或负数),所以它没有按预期工作。

关于如何解决这个问题有什么想法吗?

如何从Unity中的插件中获得Java Drawables

如果有人来问这个问题,我已经找到了一个解决方案,并将其发布在另一个问题