android 跨应用,Android跨应用获取资源
跨應用獲取資源有兩種方式
方式一 利用PackageManager
PackageManager pm = getPackageManager();
Resources rs = null;
try {
rs = pm.getResourcesForApplication("com.example.test");
// getIdentifier方法使用如方式一二中使用均可
String text = rs.getText(rs.getIdentifier("test", "string", "com.example.test")).toString();
mTextView.setText(text);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
方式二 利用目標資源所在的Context
Context remoteContext = null;
try {
// 1. 傳入目標應用包名
// 2. CONTEXT_INCLUDE_CODE的意思是包括代碼,也就是說可以執行這個包里面的代碼
CONTEXT_IGNORE_SECURITY的忽略安全警告,如果不加這個標志的話,有些功能是用不了的,會出現安全警告
remoteContext = createPackageContext("com.example.test", CONTEXT_INCLUDE_CODE | CONTEXT_IGNORE_SECURITY);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (remoteContext != null) {
int resId = remoteContext.getResources().getIdentifier("com.example.test:string/test", null, null);
// 注意,此處需要通過remoteContext將對應id轉化為字符串,否則會將該id作本應用中資源查找,從而出錯
mTextView.setText(remoteContext.getString(resId));
}
備注:
代碼已在Android9.0系統測試,跨應用獲取資源不需要權限,通過以上方式即可獲取。
總結
以上是生活随笔為你收集整理的android 跨应用,Android跨应用获取资源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java对外发布接口文档_java之接口
- 下一篇: android sina oauth2.