Не удается разрешить класс android.net.SntpClient

Я пытаюсь использовать класс SntpClient, который должен быть в пакете android.net, но Android Studio сообщает мне, что не может его найти. Действительно, когда я просматриваю исходные файлы jar (как API 19, так и API 21), класса там нет. Однако согласно grepcode это должно быть.

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.4_r1/android/net/SntpClient.java

Что я делаю неправильно?


person Flyview    schedule 04.11.2014    source источник


Ответы (1)


Google решил не делать все общедоступные классы доступными как часть SDK. Видимость контролируется тегом комментария @hide как описано здесь.

Я не уверен, почему они решили скрыть именно SntpClient, но при условии соблюдения условий лицензии Apache вы можете скопировать исходный код в свое приложение без особых изменений.

person Rupert Rawnsley    schedule 08.01.2015
comment
Обычно я вижу классы с тегом @hide. Этот я вообще не могу отследить, поэтому я думаю, что он отсутствует в SDK. - person Flyview; 08.01.2015
comment
@Flyview Можете ли вы привести пример скрытого класса, доступного в SDK? - person Rupert Rawnsley; 08.01.2015
comment
Например, TelephonyManager.isMultiSimEnabled(). У него есть тег @hide, но я все еще вижу метод. Может быть, это потому, что это всего лишь скрытый метод, а SntpClient — это целый скрытый класс? - person Flyview; 10.01.2015
comment
Я не вижу isMultiSimEnabled в intellisense Eclipse в экземпляре TelephonyManager, поэтому мне интересно, почему он виден вам? Возможно, есть определенные версии SDK, где он случайно просочился? Я заметил, что в исходном коде Android это заключено в фигурные скобки, но нет документации, позволяющей предположить, что это важно. - person Rupert Rawnsley; 12.01.2015
comment
Если вы перейдете в TelephonyManager (я использую Android Studio, поэтому нажмите Ctrl+щелчок), вы увидите весь класс и множество методов с тегом @hide. - person Flyview; 13.01.2015