如何从我自己的启动器显示设备的主启动器

时间:2014-09-22 07:30:36

标签: android android-launcher

我正在编写一个应用程序,当用户点击按钮(我已放置在我自己的启动器上)时,我必须显示设备的Home Launcher,我尝试使用此代码,但它显示我的设备上安装的所有应用程序,但如果我只想点击按钮

显示Device的Home Launcher怎么办?
public class DefaultLaunchActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launcher);
        btnDeviceLauncher = (Button) findViewById(R.id.button1);
        btnDeviceLauncher.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent startMain = new Intent(Intent.ACTION_MAIN);
                startMain.addCategory(Intent.CATEGORY_LAUNCHER);
                startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(startMain);
            }
        });
     }
}

的manifest.xml

<activity
    android:name="com.def.launc.DefaultLaunchActivity"
    android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
    android:launchMode="singleTask"
    android:stateNotNeeded="true"
    >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>         
</activity>

1 个答案:

答案 0 :(得分:1)

首先,$ git clone https://github.com/mchebib/git-dyno-htaccess.git 也启动了一个启动器应用程序。因此,如果您编写自己的启动器应用程序并将该应用程序设置为默认启动器应用程序,则下次启动器应用程序有Intent时,将启动您自己的应用程序,不是上一个启动器,因为Intent用于启动器应用程序,而您的应用程序现在是启动器应用程序。

因此,如果您希望从启动器内部启动原始启动器应用程序(虽然我认为它看起来与它实际上是启动器时相同),您将不得不使用该程序包手动启动它如下所述的名称:start application knowing package name

要获取实际启动器应用程序的包名,请参阅:How can I get the package name of the current launcher in android 2.3 and above?