Хостинг переопределяет onActivityResult()
, но он не сделал вызов super.onActivityResult()
для необработанных кодов результатов. По-видимому, несмотря на то, что фрагмент является тем, кто делает вызов startActivityForResult()
, действие получает первый снимок при обработке результата. Это имеет смысл, если учесть модульность фрагментов. После того, как я выполнил super.onActivityResult()
для всех необработанных результатов, фрагмент получил шанс обработать результат.
А также из ответа @siqing:
Чтобы получить результат в вашем фрагменте, сделайте уверенный, что вы вызываете startActivityForResult(intent,111);
вместо getActivity().startActivityForResult(intent,111);
внутри вашего фрагмента.
Я всегда использую WinError.h. Это имеет подавляющее большинство кодов ошибок Windows всех видов.
Ключевой показатель для внимательности является частью Средства кода: второй старший значащий байт. Таким образом, 0x80nnmmmm, где nn является Средство. Это говорит Вам, какой компонент сгенерировал код. Что-либо со средством 7 является кодом ошибки Windows, повторно упакованным как HRESULT, и необходимо преобразовать низкое слово в десятичное число и искать его в WinError.h. Существует также диапазон ошибок, который появляется в их собственных заголовках (например, что-либо от 12000 - 12999 является кодом ошибки WinInet, и необходимо искать его в WinInet.h).
Поиск кода ошибки даст Вам символьное имя, которое могло бы быть найдено в большем количестве документации, чем сам код или формулировка сообщения об ошибке.
FACILITY_ITF (который имеет значение 4, таким образом, эти HRESULTs запускают 0x8004) указывает, что ошибка определяется интерфейсом, который Вы используете; необходимо будет свериться с тем интерфейсом для обнаружения то, что это означает.
Наконец, COM также предлагает интерфейс IErrorInfo для получения расширенной информации об ошибке: назовите GetErrorInfo для получения ошибочного объекта. Необходимо будет запросить для ISupportErrorInfo и вызова, что метод InterfaceSupportsErrorInfo интерфейса, чтобы определить, назвали ли интерфейс Вы на самом деле набор ошибочным объектом (и конечно, если это был код шаблона, он мог бы лежать).
Ошибочный Поиск (ErrLook.exe) в Вашем %PROGRAMFILES % [Некоторая версия Visual Studio] \Tools папка Common7\будет часто давать Вам сообщение об ошибке, но не всегда:
|---------------------------------------------------| | [] Error Lookup | |---------------------------------------------------| | Value: [0x80004027] | | | | Error Message | | +---------------------------------------------+ | | |The component or application containing the | | | |component has been disabled | | | | | | | +---------------------------------------------+ | | [Modules...] [Look up] [Close] [Help] | |----------------------------------------------------
Если это не работает, Вы могли бы следовать за некоторыми идеями отсюда: http://blogs.msdn.com/oldnewthing/archive/2008/09/01/8914664.aspx
(Ошибочный Поиск просто называет FormatMessage () с флагом FORMAT_MESSAGE_FROM_SYSTEM),
Если ошибка COM не является системной ошибкой, Вам, возможно, также придется проверить документацию компонента, который бросил ошибку.
При фиксации ошибки в коде можно надеяться, что компонент реализует богатые ошибки (GetErrorInfo (), то же как объект Err в VB), таким образом, можно получить полное сообщение, описывающее проблему.
Хорошая ссылка от Prakash (я не знал о материале RCNr - я думал, что те байты были частью средства - но это только верно в Windows на 16 битов, которым это кажется.)
Часто эти неизвестные коды характерны для интерфейса/компонента, который Вы используете. Средство было бы установлено на FACILITY_ITF. У меня есть старая программа HRPlus (ссылка?), который анализирует HRESULTs.
Второй в Google заканчивается для Кода ошибки COM.