Android获取不属于我的应用程序的资源的资源标识符

Android获取不属于我的应用程序的资源的资源标识符,android,resources,identifier,resource-id,Android,Resources,Identifier,Resource Id,这就是我们如何为属于我们的应用程序的drawable获取资源标识符的方法 int resID = getResources().getIdentifier("resourceName", "drawable", "myPackageName"); 但是,当可牵引设备不是我们的时,我们怎么做呢? 1.它属于安卓系统 2.它属于另一个应用程序我猜这是通过使用另一个应用程序的包名来完成的这是我的解决方案,它对我有效..假设iconResName的形式为:packageName+:drawable/+

这就是我们如何为属于我们的应用程序的drawable获取资源标识符的方法

int resID = getResources().getIdentifier("resourceName",
"drawable", "myPackageName");
但是,当可牵引设备不是我们的时,我们怎么做呢? 1.它属于安卓系统
2.它属于另一个应用程序我猜这是通过使用另一个应用程序的包名来完成的这是我的解决方案,它对我有效..假设iconResName的形式为:packageName+:drawable/+drawableName; 我使用我编写的以下函数获取资源Id。然后我们可以用这些剩余物得到可提取的

public static int getResIdFromResEntryName(String iconResName,Context con){
  try{
    String packageName = iconResName.split(":")[0]; 
    Context otherAppContext = con.createPackageContext(packageName,Context.CONTEXT_INCLUDE_CODE|Context.CONTEXT_IGNORE_SECURITY);
    Resources resources = otherAppContext.getResources();
    int resId = resources.getIdentifier(iconResName, null, null);
    return resId;
  }catch(Exception e){return 0;}    
}

你为什么不直接使用生成的资源表,例如myPackageName.R.drawable.resourceName和android.R.drawable.resourceName?是的,我是在盯着屏幕搔了搔头后发现的。。。