标签: android-homebutton

覆盖汽车之家更换应用程序的主页按钮

我一直在努力更换股票的汽车之家应用程序,我完全不知道如何覆盖主页按钮,这样我的应用程序将在手机停靠时返回到前台.这是Car Home的工作方式,所以必须有办法.

似乎BroadcastReceivers不起作用,因为每当按下Home按钮时广播的意图仍然会导致默认的主屏幕应用程序启动; 我无法阻止它.我可以从我的应用程序中覆盖主页按钮,但这对我没有好处,因为当用户在我的应用程序之外时,这需要工作.Car Home也没有做任何奇怪的事情,比如在运行时将自己设置为默认的主屏幕应用程序(我检查了logcat以确保).

在这方面,我一直在撞墙.有没有人有任何想法,或者你能否至少指出我正确的方向?

android dock android-homebutton

5
推荐指数
1
解决办法
6550
查看次数

如何防止自定义家庭启动器应用重启活动?

我正在自己更换家用发射器,并且工作正常,但有一件事困扰着我。当我按下Home键时,当前的Home活动(在清单中定义为main / defualt / launcher / home)将重新启动-当前活动实例onpause被执行,并且oncreate被再次触发,因此启动了新活动。

另一方面,ADW启动器和LauncherPRo的行为不一样-我的情况没有刷新。Launcher Pro甚至可以执行以下操作:

  1. 如果您位于带有应用程序图标的主屏幕上,则它会缩小以查看所有屏幕的快照,
  2. 如果打开抽屉并按“主页”,则只需返回主屏幕。

任何想法如何做到这一点?

我只是从头开始做了一个非常简单的原型,只有一个活动(在清单中定义为main / defualt / launcher / home),我看到的是同一件事-如果按Home键,它将重新创建。

android android-launcher android-homebutton

5
推荐指数
2
解决办法
4037
查看次数

清除应用程序默认值

我在用

category android:name="android.intent.category.HOME"
category android:name="android.intent.category.DEFAULT"
Run Code Online (Sandbox Code Playgroud)

覆盖HOME按钮行为并将其指向我的应用程序.在这个特定的平板电脑上,我只希望这个自定义应用程序运行,并且普通用户无法退出它(即在博物馆展览中的平板电脑)

我有一个隐藏的序列来触发应用程序super.onDestroy()的关闭; this.finish(); 但它只是打开备份,因为我已将其设置为我的默认启动器应用程序.我知道如何手动进入设置>应用程序>默认启动>清除默认值以重置此设置,但有没有办法可以在我的应用程序中实际清除默认值?如果您有任何想法,请告诉我.

java android android-homebutton

5
推荐指数
1
解决办法
2377
查看次数

启用主页按钮ActionbarSherlock,Sherlockfragment

我想在我的片段中启用主页按钮.这个问题早先被提出,但是对于一项活动.
我试过了 ...

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.
这是我的代码:

import com.actionbarsherlock.R;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.view.MenuItem;

import android.support.v4.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;

public class SafanTab extends SherlockFragment {

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.safantab, container, false);
    }

    public OnClickListener onOverClick = new OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
            startActivityForResult(myIntent, 0);
        }
    };

    public OnClickListener onProductenClick = new OnClickListener() …
Run Code Online (Sandbox Code Playgroud)

android android-fragments actionbarsherlock android-homebutton

5
推荐指数
2
解决办法
1万
查看次数

在 Android 中设置和取消设置默认应用

我有一个应用程序,我试图用它“进入 Kiosk 模式”,但是我只希望它只发生在一个 Activity 上。在修改了一些控件之后,我想出了Intent.createChooser().

我想要做的是一旦 ActivityonCreate()被调用,触发Intent.createChooser()以提示用户将其设置为默认的 Home 应用程序;这样,我“禁用”了主页按钮,因为在这种情况下,我已将启动活动编程为直接返回到我的信息亭活动。

一旦 Kiosk Activity 通过密码退出到前一个,我想createChooser()再次调用,以便用户可以将我的应用程序“取消设置”为默认的 Home 应用程序,他现在可以继续照常使用 Home 按钮。

问题是,当我打电话时createChooser(),“设置为默认应用程序”复选框没有出现。我如何让它出现?

这是我的调用代码createChooser()

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(intent, "Set as default to enable Kiosk Mode"));
Run Code Online (Sandbox Code Playgroud)

我看过帖子说我应该使用startActivityForResult(),并且我尝试用startActivity()以下内容替换我的:

startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)

但这只是立即调用了我的默认应用程序,而没有弹出选择器屏幕。

android default android-launcher android-homebutton

5
推荐指数
1
解决办法
2871
查看次数

使用系统警报窗口按下事件

我需要关闭back按下和home按钮事件的系统警报窗口.我试过onKeyEvent但是徒劳无功.由于我们无法捕获服务中的back按下事件,如何实现这一目标?

android back-button android-homebutton

5
推荐指数
2
解决办法
3238
查看次数

Android:首次启动器活动仅在首次按HOME时重新创建为新任务

我想阻止用户离开我的应用.我试图通过家庭启动器活动/应用程序实现这一点,我不明白android的行为.首次按HOME将始终在新任务中创建新活动,而不是将现有活动移动到前台.当第二次按HOME时,没有任何反应.见例子:

我有一个登录活动(A)和设置活动(B).B从A打开.A被设置为启动器(LAUNCHER,DEFAULT,HOME类别).

  1. A打开B.
    • 任务T1:A - > B.
  2. 另一个A被创建成一个新任务(为什么?):
    • T1:A - > B.
    • T2:A
  3. A打开B(任务T2)
    • T1:A - > B.
    • T2:A - > B.
  4. 没有任何反应,为什么

当A的launchModesingleTop,singleTaskstandard时,我得到相同的行为.使用singleInstance只有一个A,但B在T1中单独使用,我不希望这样.

为什么总会创建一个新任务?所有intents标志始终设置FLAG_ACTIVITY_NEW_TASK标志.为什么android会这样做?

这与此处此处发布的行为相同吗?我无法使用该解决方案,因为android创建了一个新任务,因此A将永远是根.(或者我如何检查这是第二个实例?)

我不能在这里发布使用singleInstance,因为我不希望B单独使用(如果A是可见的,它也是唯一的活动和任务(登录目的)).我试图通过ActivityManager删除所有其他任务,但是对于SDK> = 21,我的min是16.getAppTasks()

我甚至无法使用解决方案,因为我从未意识到FLAG_ACTIVITY_BROUGHT_TO_FRONT标志.始终存在FLAG_ACTIVITY_RESET_TASK_IF_NEEDED标志.

我已经尝试了很多与launchMode,clearTaskOnLaunch,noHistory的组合......但没有成功 - 总是新任务.

不知道怎么解决这个问题?在棒棒糖上运行.谢谢.

android android-intent android-launcher android-homebutton android-task

5
推荐指数
0
解决办法
578
查看次数

如何检测默认启动器应用程序已更改

我开发了一个作为启动器应用程序工作的应用程序。当用户从默认启动器中删除我的应用程序时,我需要知道它。

用户可以通过两种方式从默认启动器中删除我的应用程序: 1. Settings->Apps->Reset app preferences. 2. Settings->Apps->My_App->Clear default launcher.

如果有人有任何想法,请发表评论: 1. How I can detect my app is removed from the default launcher? 2. Is there any listener/action for it? 3. Is there any way by which I can restrict/block clearing default launcher?

提前致谢!

android default block android-launcher android-homebutton

5
推荐指数
0
解决办法
233
查看次数

adb shell dumpsys 活动活动在单独的堆栈中显示单个任务的两个实例

我有一个主要活动,其意图是 CATEGORY_HOME 表现得像一个启动器。它还具有 CATEGORY_LAUNCHER 以便用户可以从 App Drawer 访问。以下是主要活动:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}
Run Code Online (Sandbox Code Playgroud)

我有另一个活动,其中包含一个按钮,可以使用 HOME 意图调用 MainActivity。它是 App Drawer 的另一个入口点。这是测试活动:

public class TestActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    findViewById(R.id.btn_test).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(TestActivity.this, MainActivity.class);
            intent.setAction(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    }); …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-launcher android-homebutton

5
推荐指数
0
解决办法
1160
查看次数

Android启动器按启动器中的主页进入默认屏幕

在默认的android启动器中,在另一个活动中按home将启动启动器.在启动器中再次按home将重置为默认主屏幕页面.我不明白如何做到这一点.无论启动器是否在前台,Android都会发出相同的意图.主页密钥也不能被用户应用程序拦截.

有没有办法实现这个目标?

android android-intent android-launcher android-homebutton

4
推荐指数
2
解决办法
5550
查看次数