Как я могу отличить телефон от планшета - PullRequest
1 голос
/ 02 апреля 2011

Используя Adobe AIR для Android, я бы хотел найти способ отличить телефон от планшета. Самое близкое, что я могу найти - это обнаружение точек на дюйм. (У меня телефон dpi 254, у меня планшет 149) но это будет надежно или есть лучший способ?

(Некоторое время я использовал stackoverflow, но это мой первый пост - yippee !!)

Ответы [ 3 ]

1 голос
/ 02 апреля 2011

но будет ли это надежным

Абсолютно нет.T-Mobile G1 был бы планшетом по этому показателю.

есть ли лучший способ?

Честно говоря, вам не нужно заботиться о том, является ли устройство Androidтелефон, планшет, телевизор, тостер, телескоп или туалет.

Вы должны заботиться о характеристиках и возможностях.

Например, если вы думаете о планшетах вв терминах размера экрана используйте наборы ресурсов <supports-screens> и -large и -xlarge (например, res/layout/ для обычного материала и res/layout-large/ для больших размеров экрана).

Или, если выдумая о планшетах с точки зрения того, можете ли вы сделать телефонный звонок, используйте <uses-feature> и hasSystemFeature() на PackageManager.

0 голосов
/ 20 сентября 2011

cdotspace, не беспокойтесь о реальном dpi, вам нужно только получить virutal dpi:

int virtual_dpi=webview1.getResources().getDisplayMetrics().densityDpi;

Virutal dpi означает количество точек на виртуальный дюйм. Например, реальная ширина htc desire hd составляет 2,21 дюйма, но его виртуальная ширина все еще составляет 2 дюйма, реальная ширина вкладки 10,1 в Galaxy - 5,35 дюйма (в вертикальной ориентации), но виртуальная ширина составляет 5 дюймов.

int portrait_width_pixel=Math.min(this.getResources().getDisplayMetrics().widthPixels, this.getResources().getDisplayMetrics().heightPixels);
int dots_per_virtual_inch=this.getResources().getDisplayMetrics().densityDpi;
float virutal_width_inch=portrait_width_pixel/dots_per_virtual_inch;
if (virutal_width_inch<=2)
   {//is phone
   }
else
    {//is tablet
    }
0 голосов
/ 02 апреля 2011

Является ли устройство планшетом или нет, может означать ...

One .... Работает ли версия планшета Honeycomb (Android 3.0)? Вы можете использовать System.getProperty (), чтобы получить эту информацию.

или

Два ... Размер планшета? т.е. экран больше по размеру? Но имейте в виду, что некоторые планшеты не такие большие. Лучший способ справиться с этим - отдельные ресурсы для каждого размера устройства.

Я бы сказал, что в целом плохая идея пытаться разделить планшеты Android на определенные группы, так как сейчас существует множество разновидностей, и их много. Поэтому обычно лучше всего создавать приложение, чтобы оно обрабатывало экран разных размеров, разные версии ОС и разные функции, доступные или отсутствующие (например, GPS, клавиатура и т. Д.).

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