我试图在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;
}
但它只返回一个充满零的数组(有时是一个非常正的负数或负数),因此它没有按预期工作。
关于如何解决这个问题的任何想法?