इसलिए मैं किसी अन्य ऐप से एक स्ट्रिंग संसाधन पुनर्प्राप्त करना चाहता हूं। ऐप Android PackageInstaller
(संभवतः System
ऐप) है और जिस स्ट्रिंग को मैं पुनर्प्राप्त करना चाहता हूं, उसके पास कई भाषा संस्करण हैं (स्रोत कोड यहां>Link)। तो Package Installer's
संसाधन निर्देशिका इस तरह दिखता है:एक और ऐप से स्ट्रिंग संसाधन पुनर्प्राप्त करें
मैं values
फ़ोल्डर से स्ट्रिंग permission_warning_template
प्राप्त करना चाहते हैं (मुझे लगता है कि एंड्रॉयड स्वचालित रूप से वर्तमान भाषा का निर्धारण करेगा और मुझे उस भाषा के मूल्य लायेगा, लेकिन मैं हो सकता है गलत हो)।
ये 2 विधियां हैं जिन्हें मैंने लिखा है (न्यूनतम, पूर्ण, और सत्यापन योग्य उदाहरण) और न ही काम करता है। क्या यह भी संभव है? इसे कैसे किया जाए?
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//First Try
testUseAndroidString();
//Second Try
Resources res = null;
try {
res = getPackageManager().getResourcesForApplication("com.android.packageinstaller");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if(null != res) {
int sId = res.getIdentifier("com.android.packageinstaller:string/permission_warning_template", null, null);
if(0 != sId) {
Log.d("TagLet", res.getString(sId));
}
}
}
public void testUseAndroidString() {
Context context = this;
Resources res;
try {
res = context.getPackageManager().getResourcesForApplication("com.android.packageinstaller");
int resourceId = res.getIdentifier("com.android.packageinstaller:string/permission_warning_template", null, null);
if(0 != resourceId) {
CharSequence s = context.getPackageManager().getText("com.android.packageinstaller:string/permission_warning_template", resourceId, null);
Log.d("TagLet", "resource=" + s);
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Log.d("TagLet", "FAIL");
}
}
धन्यवाद।
मुझे यह संभव नहीं दिख रहा है। आप अपने संसाधनों में केवल उन संसाधनों को क्यों शामिल नहीं करेंगे? – gustyaquino
Thats संभव नहीं है: ऐप्स एंड्रॉइड में sandboxed हैं। Https://developer.android.com/training/articles/security-tips.html देखें – Robert