我想以编程方式获取Android操作系统的所有字符串(包括所有字符串),包括那些被视为私有的字符串。
例如,我想获取packageManager应用程序的那些,如找到here。
使用android.R.string只返回一小部分字符串。
我找到了this link,它显示了下一个代码,但我不确定要在参数中加入什么:
private String GetAttributeStringValue(Context context, AttributeSet attrs, String namespace, String name, String defaultValue)
{
//Get a reference to the Resources
Resources res = context.getResources();
//Obtain a String from the attribute
String stringValue = attrs.getAttributeValue(namespace, name);
//If the String is null
if(stringValue == null)
{
//set the return String to the default value, passed as a parameter
stringValue = defaultValue;
}
//The String isn't null, so check if it starts with '@' and contains '@string/'
else if( stringValue.length() > 1 &&
stringValue.charAt(0) == '@' &&
stringValue.contains("@string/") )
{
//Get the integer identifier to the String resource
final int id = res.getIdentifier(context.getPackageName() + ":" + stringValue.substring(1), null, null);
//Decode the string from the obtained resource ID
stringValue = res.getString(id);
}
//Return the string value
return stringValue;
}
我还注意到一个名为Android resources的应用程序可以执行此操作,但仅适用于某些字符串。找到其他私人资源也很不错。
这样的事情可能吗?如果没有,是否可以用root进行?
答案 0 :(得分:0)
您的链接显示如何从偏好设置屏幕获取资源并说:
The goal of this example was to show how to obtain the correct String resource outside the Android XML namespace
链接描述了您可以通过其他方式获取资源,而不仅仅是通过R.string。
我使用另一个自定义命名空间和自定义按钮Label创建了一个演示项目,但遗憾的是我无法将字符串资源从一个项目显示到另一个项目。