Я попытался разработать такое приложение, в том смысле, что хочу заблокировать все приложения на своем устройстве с помощью пароля, который я хочу. Но я не нашел какой-либо части кода для решения. Поэтому я разработал один сам и, к сожалению, этого не удалось. Я нашел много решений для блокировки устройств Android, но не нашел их для блокировки приложения. Будем рады, если вы предложите решение.Программные приложения для блокировки приложений Android
ответ
Я использовал фоновое обслуживание, чтобы проверить, какое приложение находится на переднем плане (это означает, что приложение используется пользователем). Затем я проверяю, нужно ли мне блокировать приложение или нет.
Чтобы найти список всех установленных приложений (за исключением системных приложений):
PackageManager packageManager = getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appList = packageManager.queryIntentActivities(mainIntent, 0);
Collections.sort(appList, new ResolveInfo.DisplayNameComparator(packageManager));
List<PackageInfo> packs = packageManager.getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
ApplicationInfo a = p.applicationInfo;
// skip system apps if they shall not be included
if ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
continue;
}
appList.add(p.packageName);
}
Чтобы найти текущий переднего плана приложения:
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
activityOnTop=ar.topActivity.getClassName();
Здесь имя-класс предоставляет имя пакета заявление. Я предлагаю вам использовать имя пакета для идентификации любого приложения, чтобы мы знали, что имя пакета всегда уникально.
Теперь функциональность для блокировки приложения:
Чтобы найти какое приложение работает на переднем плане и хотите, чтобы заблокировать его, мы просто должны начать другую деятельность, которая имеет EditText пароля и OK и Отмена.
Intent lockIntent = new Intent(mContext, LockScreen.class);
lockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(lockIntent);
На щелчку OK, если пароль правильный, то просто отделка LockScreen активность. Если пароль введен неверно, то просто используйте следующий код, который закрывает приложение и показывает домашний экран устройства:
Intent startHomescreen = new Intent(Intent.ACTION_MAIN);
startHomescreen.addCategory(Intent.CATEGORY_HOME);
startHomescreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(startHomescreen);
тот же код используется также на кнопку отмены.
** @ Shakeeb Shaheen ** и ** thampi joseph ** если у вас есть какие-либо вопросы, связанные с этой записью, не стесняйтесь спрашивать ... –
ThankYou Amit .. :) Перейдем к этому :) –
Эй, подождите .. Я хочу заблокировать системное приложение, а также приложение, работающее в фоновом режиме также. Можете ли вы мне помочь в этом тоже? :) –
Похоже, что это все еще загадка, как было предложено вышеупомянутыми комментариями. Поэтому я помещаю код, который помог мне решить эту проблему.
getForegroundApp
public String getForegroundApp() {
String currentApp = "NULL";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager usm = (UsageStatsManager) this.mContext.getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time);
if (appList != null && appList.size() > 0) {
Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : appList) {
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if (mySortedMap != null && !mySortedMap.isEmpty()) {
currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
} else {
ActivityManager am = (ActivityManager) this.mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> tasks = am.getRunningAppProcesses();
currentApp = tasks.get(0).processName;
}
return currentApp;
}
Вызов getForegroundApp()
и возвращает строку, содержащую имя currentForegroundApp, включая имя пакета, например com.example.app
Теперь, чтобы использовать этот код, нам нужна эта строка кода в Manifest
файле
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
и принять пользователю Usage Data access Settings
:
usageAccessSettingsPage
public void usageAccessSettingsPage(){
Intent intent = new Intent();
intent.setAction(Settings.ACTION_USAGE_ACCESS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromParts("package", mContext.getPackageName(), null);
intent.setData(uri);
startActivity(intent);
}
или вручную путем нахождения в LockScreen and Security
>Other security settings
>Usage access data
.
Теперь наступает часть блокировки приложения, эта часть очень хорошо освещена в ответе Амита. Однако, если кто-то ищет способ ограничить пользователя от использования приложения, то трюк заключается в том, чтобы открыть главный экран при запуске определенного приложения.
Это может быть сделано путем вызова следующего метода, когда currentApp
равно заблокированного приложение
if(<NameOfBlockedApp>.equals currentApp){
showHomeScreen();
}
ShowHomeScreen
public boolean showHomeScreen(){
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(startMain);
return true;
}
Привет, я успешно открываю активность блокировки, когда другое приложение открывается, которое мне нужно задать пароль, но когда пользователь вводит правильный пароль, его покажет мое приложение вместо приложения, для которого я открыл действие. Как открыть экран блокировки и закрыть его, не открывая мое приложение в фоновом режиме. Пожалуйста, помогите, я застрял здесь. –
@RahulVats Задайте новый вопрос и ссылку – 7geeky
@RahulVats вы нашли решение, как запустить такое же приложение после успешного пароля. потому что он открыл мое приложение для блокировки. –
- 1. Приложение для блокировки приложений Android
- 2. Приложения для Android-приложений
- 3. приложение блокировки для блокировки приложений в iphone
- 4. Как получить программные приложения ios?
- 5. Программные преимущества для привилегированных приложений OS X
- 6. Значок приложения для Android-приложений
- 7. Аннулирование приложения для Android-приложений
- 8. Как ввести программные приложения для Windows?
- 9. ошибка приложения приложения для разработки приложений Android
- 10. Компоненты приложения для блокировки клавиатуры Android
- 11. Создание блокировки приложения для Android-телефона
- 12. Кнопка блокировки приложения для IOS и Android
- 13. Как отключить ключ HOME для приложения для запуска приложений Android
- 14. Программные приложения Проекты
- 15. разработка приложения экрана блокировки Android
- 16. Пул приложений IIS: изменить настройки программные
- 17. Как сделать сервис для блокировки приложений в Android?
- 18. Unity3D программные кнопки для скрытия системы Android
- 19. Реализация приложения для контейнеров для приложений Android?
- 20. Программные программные ключи для переключателей
- 21. Запретить удаление приложений для Android?
- 22. Программные приложения для контактов на сервере Exchange
- 23. можно открыть программные приложения для голосовых заметок
- 24. Программное обеспечение для блокировки интернета для приложений
- 25. Имена компонентов приложения для приложений Android
- 26. Оптимальная упаковка приложения для Android-приложений
- 27. Приложения для приложений Android на телефонах Sense
- 28. Приложения для поддержки приложений Android API
- 29. Android 4 наложения/замены/скрыть программные кнопки
- 30. Программные программные ограничения внешних ресурсов
ли Вы хотите заблокировать приложение в момент доступа , Если да, то я помогу вам bcz. Я разработал приложение, в котором пользователь сможет заблокировать (любое или все) установленное приложение в устройстве. –
@AmitGupta Я также сталкиваюсь с той же проблемой. Я хочу заблокировать приложение во время доступа .. Помогите мне :) –
Привет Amit .. Я хочу того же. Хотите заблокировать во время доступа к приложению. :) –