Android-устройство специальные функции - PullRequest
1 голос
/ 11 декабря 2011

разных устройств Android иногда будут иметь разные экранные функции (например, кнопки в нижней части экрана в приложениях kindle fire).Как вы можете изменить поведение таких кнопок?Я не могу найти никаких ресурсов, чтобы делать такие вещи ..

** РЕДАКТИРОВАТЬ **

Я обнаружил, что то, что я назвал "нижними кнопками", более подходящим образом называетсяOptions Bar за некоторую документацию Kindle Fire от Amazon

** EDIT **

Учитывая оба ответа, говорят, что это не возможно, я решил, что пришло времяпример.Похоже, что меню, которое я хочу сделать, на самом деле является частью приложения, но имеет прослушиватель кнопок для этих системных кнопок.Как мне найти пример кода для использования этих кнопок?

Pulse app screenshot kindle fire

Ответы [ 3 ]

2 голосов
/ 12 декабря 2011

Как вы можете изменить поведение кнопок такого типа?

Вы спрашиваете у производителя устройства о том, как изменить то, что они сделали, за пределами Android SDK. Очень вероятно, что ответ «ты не можешь».

1 голос
/ 27 февраля 2012

вот оно: (java)

package com.wali.jackonsoptionsmenu;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

public class JacksonsOptionsMenuActivity extends Activity {
private final static String TAG = JacksonsOptionsMenuActivity.class
        .getSimpleName();

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

// this one is called once before showing OptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    Log.d(TAG,
            "onCreateOptionsMenu: called once, while creating options menu");
    getMenuInflater().inflate(R.menu.jackonsmenu, menu); // this one
                                                            // inflates your
                                                            // xml based
                                                            // menu into
                                                            // memory and
                                                            // sets to menu,
                                                            // from
                                                            // 'R.menu.jacksonsmenu
                                                            // to 'menu'
    return true; // if You want to handle bottom bar menu (OptionsMenu) you
                    // have to return 'true'
}

// this one is called everytime, but before showing the menu
// if You want to change button name, icon or other stuff, do it here
// its something like preparing
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    Log.d(TAG,
            "onPrepareOptionsMenu: called everytime before showing the OptionsMenu");

    return true;
}

// this one is called everytime, after the OptionsMenu is shown
// this one comes, if everything is ok in Your implementation, otherwise,
// nothing
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
    Log.d(TAG, "onMenuÖpened: called everytime after the OptionsMenu shown");

    return true;
}

// this on is called when an item selected try item.getItemId()
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Log.d(TAG, "onOptionsItemSelected: called when an item selected");

    switch (item.getItemId()) {
    case R.id.menuRefreshAll:
        Log.i(TAG, "onOptionsItemSelected: refreshing everything");
        break;

    case R.id.menuManageSources:
        Log.i(TAG, "onOptionsItemSelected: managing sources");
        break;
    }

    return true;
}

// this on is called everytime after the optionsmenu is disappeared
@Override
public void onOptionsMenuClosed(Menu menu) {
    Log.d(TAG,
            "onOptionsMenuClosed: called everytime after the OptionsMenu is disappeared");

    Log.i(TAG, "Hey Jackson, I'm disappeared");
}
}

XML-файл

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:id="@+id/itemStatus" android:title="@string/titleStatus"
    android:icon="@android:drawable/ic_menu_edit"></item>
  <item android:title="@string/titleTimeline" android:id="@+id/itemTimeline"
    android:icon="@android:drawable/ic_menu_sort_by_size"></item>
  <item android:id="@+id/itemPrefs" android:title="@string/titlePrefs"
    android:icon="@android:drawable/ic_menu_preferences"></item>
  <item android:icon="@android:drawable/ic_menu_delete"
    android:title="@string/titlePurge" android:id="@+id/itemPurge"></item>
  <item android:title="@string/titleRefresh" android:id="@+id/itemRefresh"
    android:icon="@android:drawable/ic_menu_rotate"></item>
</menu>

Есть несколько хитростей: если у вас есть несколько действий с одним и тем же OptionsMenu: 1. Создайте базовую активность с помощью OptionsMenu 2. Унаследуйте это базовое действие от других активностей, которые обрабатывают то же OptionsMenu

Результат: одно и то же меню на несколько мероприятий

С уважением, Галымжан Ш

1 голос
/ 27 февраля 2012

Как вы можете изменить поведение кнопок такого типа?

поведение?Вы не можете изменить поведение кнопок приложений сторонних разработчиков, которые расположены в нижней части разжигания огня (это просто OptionsMenu и вызывается нажатием кнопки «Меню» на других устройствах на базе Android)

Вы можете отключить эти кнопки - Домой, Назад и другие вещи ... (но не на kindle)

Kindle Fire не поддерживает приложения, которые имеют разрешения disable_keyguard или настраивают экран блокировки.

https://developer.amazon.com/help/faq.html#KindleFire

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...