【发布时间】:2014-12-04 09:11:44
【问题描述】:
我正在开发 appLocker,我必须在其中设置已安装设备应用程序的密码。 为此,我创建了一个列表,其中包含所有已安装的应用程序。用户可以使用复选框选择应用程序并在其上设置密码。为此,我必须获取该应用程序的包名称。我能够获取所选应用程序的包名称并使用共享首选项保存它们。现在我必须在另一个活动中获取该包名称。请告诉我怎样才能得到它。
这是我获取包名的代码。
public void onClick(View v) {
if (R.id.select_done_btn == v.getId()) {
SharedPreferences prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);
int[] indexes = appListAdapter.getSelectedItemIndexes();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < indexes.length; ++i) {
AppInfo appInfo = installedApps.get(indexes[i]);
sb.append(appInfo.getPackageName()).append(";");
}
Editor editor = prefs.edit();
editor.putString("lock_apps", sb.toString());
editor.commit();
这是我必须获取该包名称以将所选应用程序锁定在另一个活动中的代码部分..
public void run() {
while (true) {
Log.i("lock", "lockerThread run.");
String packname = activityManager.getRunningTasks(1).get(0).topActivity.getPackageName();
if ("**PACKAGE NAME**".equals(packname)) {
startActivity(pwdIntent);
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
【问题讨论】:
-
使用sharedPref.getString函数
-
感谢您的友好回复 Mtetno,但是您能告诉我如何使用它以及在哪里使用它。我的意思是,我可以在这种和平的代码中使用它吗??
-
使用 List 而不是使用 StringBuilder
-
@Devraj 只需粘贴此
SharedPreferences prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);,它将声明您的共享首选项,因此您的字符串将为String myPackage=prefs.getString("urKey",null);
标签: android android-activity sharedpreferences packages