Добавить действие в контекстное меню браузера после долгого нажатия на изображение? - PullRequest
0 голосов
/ 20 декабря 2011

Надеюсь, вы можете помочь мне со следующим:

Мне нужно добавить действие в контекстном меню, которое появляется после длительного нажатия изображения в браузере (то, которое имеет «Сохранить изображение», «Копировать изображение», «Просмотреть изображение», «Установить в качестве обоев» и т. Д.)

В результате выбора моего действия оно должно вызвать мою службу и т. Д. .... Я не хочумое приложение переписать все контекстное меню браузера, но только добавить к нему действие.Я не нашел никакой информации о том, как это сделать.Является ли это возможным?Спасибо!

see the image

Ответы [ 3 ]

0 голосов
/ 20 декабря 2011

В соответствии с вышеуказанным.Нет, вы не можете добавить пункт меню в любое приложение.Когда вы используете вызов и видите Skype, просто у Skype есть возможности для обработки вызовов.И зарегистрировался в Манифесте.Следовательно, когда инициируется действие вызова, все приложения с зарегистрированным манифестом будут заданы как опция.

Подобное поведение может быть достигнуто вашим приложением путем простого объявления соответствующих полей в файле манифеста.Например, если вы хотите обработать изображения, все, что вам нужно сделать, это обработать mime в разделе данных вашего фильтра намерений.

0 голосов
/ 08 ноября 2012

Хорошо, если вы хотите добавить контекстное меню к веб-представлению, вам нужно будет сделать следующее.В основном классе приложения, который расширяет DroidGap, вам нужно добавить следующую строку в метод onCreate:

this.registerForContextMenu(this.appView);

, затем вам нужно добавить следующие два метода в один и тот же класс Java:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.example, menu);
}

Конечно, вам нужно обновить R.menu.example до имени файла XML вашего меню.

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    switch (item.getItemId()) {
        case R.id.settings:
            this.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
            return true;
        case R.id.help:
            this.appView.sendJavascript("navigator.notification.alert('No help')");
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

и в этом методе вам нужно будет обработать все вашиопции меню действий.

0 голосов
/ 20 декабря 2011

Короче говоря, вы не можете сделать это. Браузер - это просто приложение, подобное вашему. Если бы вы разрабатывали браузер, как бы вы предоставили такую ​​функциональность в приложении браузера?

Android-гуру: я что-то здесь упускаю?

В качестве примечания, самое близкое, что вы можете сделать, это определить Intent.ACTION_VIEW и ресурсы и надеяться, что браузер использует IntentChooser, и в этом случае ваше приложение (вместе с другими) будет отображаться.

Общие действия определяются системой Android Intent (http://developer.android.com/reference/android/content/Intent.html).

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