Development Notes for Custom Launchers

Custom launchers provide alternatives for our user-base and help spur innovation.

One requirement for custom launchers, is that they recognize when a system update is available and take the user to the Update screen. The notification of an available update is done via a sticky intent. Some sample code for this is:

private static final String SYSTEM_UPDATE_AVAILABLE_ACTION = "tv.ouya.update.UPDATE_AVAILABLE_ACTION";

protected void onResume() {

    Intent updateIntent = registerReceiver(null, new IntentFilter(SYSTEM_UPDATE_AVAILABLE_ACTION));
    if (updateIntent != null) {
        new AlertDialog.Builder(this)
                .setTitle("Update Available")
                .setMessage("Go update now!")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ouya://launcher/update")));

To help make them more usable, we've exposed the ability for them to open up certain activities in the standard Cortex launcher:

Pair Controllers

To be opened when no input devices are present, allows users to pair new controllers.

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ouya://launcher/manage/controllers/pairing")));


Displays the Cortex Manage menu, allows users to change account/system settings.

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ouya://launcher/manage")));

Network Setup

Open the Network screen directly (this is also one of the options within the Manage menu).

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ouya://launcher/manage/network")));


Displays the Cortex Discover screen, allows users to browse/download new games.

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ouya://launcher/discover")));

App Details

Displays the Cortex Details screen for the given package.

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("ouya://launcher/details?")));