Любой, кто знает, как отключить кнопку приложения «Недавняя задача», когда запускает разрешенное приложение в приложении, как в SureLock Kiosk Lockdown? Если да, можете ли вы предоставить коды для этого?Android Отключить последнюю кнопку задач, например, в SureLock
ответ
От source
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d("Focus debug", "Focus changed !");
if(!hasFocus) {
Log.d("Focus debug", "Lost focus !");
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}
Как я могу получить к нему доступ, если я запускаю другое приложение? – androidBoomer
Для отключения кнопки Недавние приложения при запуске других приложений, то вы можете создать службу.
общественного класса StatusBarService расширяет службы {
private static final String TAG = StatusBarService.class.getSimpleName();
private volatile boolean isRunning;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
isRunning = true;
// Lock a recentApps button
RecentAppLockerThread thread = new RecentAppLockerThread();
new Thread(thread).start();
}
/**
* Lock a recent apps button
*
*
*/
private class RecentAppLockerThread implements Runnable {
@Override
public void run() {
while (isRunning) {
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}
}
@Override
public boolean stopService(Intent name) {
isRunning = false;
return super.stopService(name);
}
@Override
public void onDestroy() {
super.onDestroy();
isRunning = false;
}
}
Вы не можете быть серьезным. Бесконечная закрытая трансляция во время работы вашего сервиса? Кроме того, переопределение stopService не является обратным вызовом для остановки службы; он исходит из контекста, так что код запускается при вызове stopService из вашей службы. Этот ответ вреден. – PaulR
Для отключения Последние кнопка добавить этот код в ваш Основной вид деятельности:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (!hasFocus) {
windowCloseHandler.post(windowCloserRunnable);
}
}
private void toggleRecents() {
Intent closeRecents = new Intent("com.android.systemui.recent.action.TOGGLE_RECENTS");
closeRecents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
ComponentName recents = new ComponentName("com.android.systemui", "com.android.systemui.recent.RecentsActivity");
closeRecents.setComponent(recents);
this.startActivity(closeRecents);
}
private Handler windowCloseHandler = new Handler();
private Runnable windowCloserRunnable = new Runnable() {@Override public void run() {
ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
if (cn != null && cn.getClassName().equals("com.android.systemui.recent.RecentsActivity")) {
toggleRecents();
}
}
};
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d("Focus debug", "Focus changed !");
if(!hasFocus) {
Log.d("Focus debug", "Lost focus !");
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}
привет, вы найти решение для блокировки кнопки возврата? – Tazz