Php определить смартфон или планшет

Обновлено: 07.07.2024

Я хотел бы получить информацию об устройстве, чтобы узнать, есть ли это смартфон или планшет. Как мне это сделать?

Я хотел бы показать разные веб-страницы из ресурсов на основе типа устройства:

Однако для моего случая это кажется бесполезным.

Теперь это решение работает для меня:

Эта тема обсуждается в обучении Android:

Если вы прочитаете всю тему, они объяснят, как установить логическое значение в конкретном файле значений (как res/values-sw600dp/attr.xml):

Потому что квалификатор sw600dp действителен только для платформ выше Android 3.2. Если вы хотите убедиться, что этот метод работает на всех платформах (до 3.2), создайте тот же файл в папке res/values-xlarge:

Затем в "стандартном" файле значений (как res/values /) вы устанавливаете логическое значение false:

Затем в своей деятельности вы можете получить это значение и проверить, работаете ли вы на устройстве размером с планшет:

Я считаю, что планшет имеет по меньшей мере 6,5-дюймовый экран. Вот как это вычислить, основываясь на ответе Nolf выше.

Я предполагаю, что когда вы определяете "Мобильный телефон", вы хотите знать, можете ли вы сделать телефонный звонок на устройстве, что нельзя сделать на чем-то, что будет определено как "планшет". Способ проверить это ниже. Если вы хотите узнать что-то по сенсорам, размеру экрана и т.д., То это действительно другой вопрос.

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

Мне нравится решение Ol_v_er, и это простота, но я обнаружил, что это не всегда так просто, что с постоянно появляющимися новыми устройствами и дисплеями, и я хочу быть немного более "гранулированным", пытаясь выяснить фактический размер экрана. Еще одно решение, которое я нашел здесь от John, использует ресурс String вместо логического, чтобы указать размер планшета. Таким образом, вместо того, чтобы просто поместить true в файл /res/values -sw600dp/screen.xml(предполагая, что это ваши макеты для небольших планшетов), вы должны поставить:

Опишите это следующим образом, а затем выполните то, что вам нужно, на основе результата:

Ответ Sean O'Toole для Обнаружение 7-дюймового и 10-дюймового планшета программным путем также было тем, что я искал. Вы можете проверить это, если ответы здесь не позволяют вам быть настолько конкретными, насколько вам бы хотелось. Он отлично справляется с объяснением того, как рассчитать разные показатели, чтобы выяснить, что вы на самом деле имеете в виду.

UPDATE

Изучая исходный код приложения I/O 2013 года, я столкнулся с следующим: они используют, чтобы определить, является ли устройство планшетом или нет, поэтому я решил добавить его. Вышесказанное дает вам немного больше "контроля" над ним, но если вы просто хотите узнать, есть ли это планшет, следующее довольно просто:

Общие возможности

isMobile() - определяет является ли устройство мобильным

isTablet() - определяет является ли устройство планшетом

Возможности библиотеки

Для проверки мы можем заюзать следующие методы:

Определение телефона

  • isiPhone()
  • isBlackBerry()
  • isHTC()
  • isNexus()
  • isDellStreak()
  • isMotorola()
  • isSamsung()
  • isSony()
  • isAsus()
  • isPalm()
  • isGenericPhone()

Определение планшета

  • isBlackBerryTablet()
  • isiPad()
  • isKindle()
  • isSamsungTablet()
  • isHTCtablet()
  • isMotorolaTablet()
  • isAsusTablet()
  • isNookTablet()
  • isAcerTablet()
  • isYarvikTablet()
  • isGenericTablet()

Определение операционной системы

  • isAndroidOS()
  • isBlackBerryOS()
  • isPalmOS()
  • isSymbianOS()
  • isWindowsMobileOS()
  • isiOS()
  • isFlashLiteOS()
  • isJavaOS()
  • isNokiaOS()
  • iswebOS()
  • isbadaOS()
  • isBREWOS()

Определение мобильного браузера

  • isChrome()
  • isDolfin()
  • isOpera()
  • isSkyfire()
  • isIE()
  • isFirefox()
  • isBolt()
  • isTeaShark()
  • isBlazer()
  • isSafari()
  • isMidori()
  • isGenericBrowser()

Примеры

5 последних уроков рубрики "PHP"

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Однажды этот прекрасный день пришёл. День, когда я физически осознал, что мне нужно определять, каким устройством пользуется посетитель сайта, чтобы соответственно отрисовывать для него страницу.

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

Проект постоянно поддерживается и обновляется, ибо весьма полезная вещь.

Подключается скрипт очень просто — с помощью requred_once мы указываем путь к файлу, а затем инициализируем объект:

Настройка скрипта завершена. Теперь через использование $detect мы можем определять устройства. Нам доступны следующие переменные для определения типа устройств:

  • isMobile — переменная, которая определяет любое мобильное устройство — как смартфон, так и планшет;
  • isTablet — переменная, которая предназначена для определения только планшетных компьютеров.

Также существуют две переменные для определения операционной системы мобильного устройства:

  • isiOS — определяет устройства под управлением iOs (iPhone и iPad);
  • isAndroidOS — устройства на Android;
  • isWindowsMobileOS и isWindowsPhoneOS — тут можно не просто узнать, что эта мобильная система производства Microsoft, но даже указать его версии. WindowsMobile уже не столь актуальна, поскольку мелкомягкие перешли на единую платформу, но если вдруг к нам зайдут пользователи Pocket PC и Smartphone, то мы модем предложить для них уникальный сервис;
  • isBlackBerryOS — можно определить также смартфоны этого производителя. Для России аппараты BlackBerry не слишком актуальны, но возможно всё (вдруг вы или ваш заказчик — фанат или пользователь этого девайса, и нужно сделать что-то особенное для других пользователей);
  • isPalmOS и isSymbianOS — для устройств на таких операционных системах есть переменные для определения. Для меня это очень редкие устройства — настолько, что в жизни таких не видел (но это не точно), только на сайты заходят редкие пользователи этих устройств.

Кроме того, скрипт может определять производителя устройства. Укажу всего несколько переменных для определения вендора устройства, которые нам доступны:

  • isiPhone и isiPad — можно чётко определить для каждого из устройств Apple, что показывать его пользователю;
  • isSamsung — для устройств производства Samsung, один из самых популярных производителей;
  • isLG — телефоны производства LG также весьма популярны и для них можно сделать что-то особое;
  • isVertu — посетитель вашего сайта обладатель телефона Vertu, нужно больше золота (и умножаем все цены в магазине на 10).

В реальности этих переменных намного больше — на демо-странице скрипта можно увидеть список поддерживаемых переменных.

Для тех, кто хочет убойной точности и избирательности, можно указывать нужные устройства через значения UserAgent, но по мне такая избирательность уж слишком чрезмерная (хотя бывает всякое).

Разработчики не перестают совершенствовать свой продукт и вполне вероятно, что скоро нам будет доступна возможность определения версий браузеров и устройств (в первую очередь для продукции Apple) — функции уже есть в последнем релизе, но пока они находятся на бета-тестировании.

Этот пример немного бесполезный, но очень простой. Немного подумав, этот скрипт можно исползовать для более изящных решений, например, в зависимости от операционной системы подключать разные стили и изображения, чтобы дизайн сайта адаптировался под устройство. Либо, если на вашей странице есть реклама мобильного приложения, выводил предложения о переходе на AppStore или Google Play соответственно. Идей для применения может быть много.

Предлагаю вашему вниманию ещё один пример, который используется на моём сайте. Суть кода следующая — мы выводим разные варианты шапки сайта в зависимости от типа устройства. Код (с сокращениями) следующий:

И напоследок самое сладкое — эта библиотека была портирована на JavaScript, Varnish Cache и LUA.

На основе этого скрипта написаны плагины и модули для WordPress, Drupal, Joomla, Magento, PrestaShop (там он вообще поставляется в стандартном пакете с версии 1.5), Laravel, Yii Framework и множество других фреймворков и языков и платформ.

Библиотека очень полезная и весьма доставляющая.

Библиотека для определения типа и модели устройства на PHP

Общие возможности

Возможности библиотеки

Для проверки мы можем заюзать следующие методы:

Определение телефона

  • isiPhone()
  • isBlackBerry()
  • isHTC()
  • isNexus()
  • isDellStreak()
  • isMotorola()
  • isSamsung()
  • isSony()
  • isAsus()
  • isPalm()
  • isGenericPhone()

Определение планшета

  • isBlackBerryTablet()
  • isiPad()
  • isKindle()
  • isSamsungTablet()
  • isHTCtablet()
  • isMotorolaTablet()
  • isAsusTablet()
  • isNookTablet()
  • isAcerTablet()
  • isYarvikTablet()
  • isGenericTablet()

Определение операционной системы

  • isAndroidOS()
  • isBlackBerryOS()
  • isPalmOS()
  • isSymbianOS()
  • isWindowsMobileOS()
  • isiOS()
  • isFlashLiteOS()
  • isJavaOS()
  • isNokiaOS()
  • iswebOS()
  • isbadaOS()
  • isBREWOS()

Определение мобильного браузера

  • isChrome()
  • isDolfin()
  • isOpera()
  • isSkyfire()
  • isIE()
  • isFirefox()
  • isBolt()
  • isTeaShark()
  • isBlazer()
  • isSafari()
  • isMidori()
  • isGenericBrowser()

Примеры

Фильтрация данных с помощью zend-filter


Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.


Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.


Совет: отправка информации в Google Analytics через API


Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Php определить мобильное устройство


See the history of the project.

  • JetBrains is sponsoring the project by providing licenses for PHPStorm and DataGrip.
  • Mobile_Detect 2.x.x is only integrating new regexes, User-Agents and tests. We are focusing on new tablets only. The rest of the PRs about TVs, bots or optimizations will be closed and analyzed after 3.0.0-beta is released.
  • Mobile_Detect 3.x.x is experimental and WIP.

Download and include manually

Use this to quickly test the demo.

  • Download latest release
  • Mobile_Detect.php

Install as a composer package

Use this method to get continuous updates.

or include the dependency in the composer.json file:

Submit a pull request but before make sure you read how to contribute guide.

Special thanks to the community for donations, JetBrains team for the continuous support and Dragos Gavrila who contributed with the logo.

Modules, plugins, ports

JavaScript

Varnish Cache

LUA

PHP

WordPress

Adaptive Content for WordPress provides the most intuitive set of shortcodes for including/excluding content on mobile devices, tablets desktops and other more specific device parameters. This lightweight plugin lets content writers and theme authors choose when WordPress should or shouldn’t show any give content item using shortcodes and quicktags or theme elements using functions. Made by AddFunc.

AddFunc Mobile Detect for WordPress redirects mobile traffic to your mobile website and, basically, gives you loads of control over your mobile redirects. Made by AddFunc.

Drupal

Joomla

Magento

Magento helper from Optimise Web enables the use of all functions provided by Mobile Detect. Made by Kathir Vel.

Magento 2 Mobile Detect Theme Change is an extension for Magento 2 that will change the theme or redirect to a different URL. Also containing a helper to check for the device type.

PrestaShop

  • PrestaShop is a free, secure and open source shopping cart platform. Mobile_Detect is included in the default package since 1.5.x.

Laravel

Agent is a user agent class for Laravel based on Mobile Detect with some additional functionality. Made by Jens Segers.

Laravel Mobile Detect is a package that enables you to use device detection right in your Laravel Blade templates. (Utilises the well-known, constantly updated PHP mobile detection library.) Made by Barnabas Kecskes.

BrowserDetect is a browser and mobile detection package, collects and wrap together the best user-agent identifiers for Laravel. Created by Varga Zsolt.

Zend Framework

ZF2 Mobile-Detect is a Zend Framework 2 module that provides Mobile-Detect features (Mobile_Detect class as a service, helper for views and plugin controllers). Made by neilime.

ZF2 MobileDetectModule facilitates integration of a PHP MobileDetect class with some ZF2-based application. Has similar idea like the existing ZF2 Mobile-Detect module, but differs in initialization and provision routine of the actual Mobile_Detect class. Appropriate view helper and controller plugin also have different conceptions. Made by Nikola Posa.

Symfony

Symfony2 Mobile Detect Bundle is a bundle for detecting mobile devices, manage mobile view and redirect to the mobile and tablet version. Made by Nikolay Ivlev.

Silex Mobile Detect Service Provider is a service provider to interact with Mobile detect class methods. Made by Lhassan Baazzi.

Slim Framework

  • Slim_Mobile_Detect implements Mobile_Detect lib for different responses write on Slim Framework App.

ExpressionEngine

  • EE2 Detect Mobile is a lightweight PHP plugin for EE2 that detects a mobile browser using the Mobile Detect class. Made by Gareth Davies.

Yii Framework

CakePHP

  • CakePHP MobileDetect is a plugin component for CakePHP 2.x. Made by Gregory Gaskill.

FuelPHP

  • Special Agent is a FuelPHP package which uses php-mobile-detect to determine whether a device is mobile or not. It overrides the Fuelphp Agent class its methods. Made by Robbie Bardjin.

TYPO3

Other

PageCache is a lightweight PHP library for full page cache, with built-in Mobile-Detect support. Made by Muhammed Mamedov.

Kohana Mobile Detect is an example of implementation of Mobile_Detect class with Kohana framework. Written by Luiz Alberto S. Ribeiro.

MemHT is a Free PHP CMS and Blog that permit the creation and the management online of websites with few and easy steps. Has the class included in the core.

concrete5 is a CMS that is free and open source. The library is included in the core.

engine7 is PHP Open Source Framework. The Mobile_Detect class is included in the engine.

Zikula is a free and open-source Content Management Framework, which allows you to run impressive websites and build powerful online applications. The core uses Mobile-Detect to switch to a special Mobile theme, using jQueryMobile.

LJ Mobile Detect is a simple implementation of Mobile Detect for Craft CMS. Made by Lewis Jenkins.

Detect Craft is a Craft CMS wrapper for the Mobile_Detect library. Made by Mikkel Rummelhoff.

Grav Plugin Mobile Detect is a simple implementation of Mobile Detect for Grav CMS. Made by Dimitri Longo.

Perl

  • MobileDetect.pm is a Perl module for Mobile Detect. Made by Sebastian Enger.

Python

Ruby

  • mobile_detect.rb is a Ruby gem using the JSON data exposed by the php project and implementing a basic subset of the API (as much as can be done by the exposed data). Made by Karthik T.

Go

LUA

  • ua-lua is a small lib written in LUA providing device type detection. ua-lua is detecting mobile or tablet devices based on user-agent inside nginx daemon. Made by Frédéric Robinet.

ColdFusion

  • MobileDetect is a CFC port of the Mobile_Detect PHP Library. Made by Giancarlo Gomez.

Experiments

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Mobile_Detect: php-класс для определения мобильных устройств


Здесь также присутствуют функции для определения iPad, iPhone, Android, Blackberry и так далее. И мы даже можем создавать выпадающие меню с версиями платформ и браузеров, если это потребуется.

Здесь есть огромная библиотека устройств (включая Nook, Nexus, Kindle, Archos..) и браузеров.

Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:


Бесплатные PDF-скетчи шаблонов для веб-сайтов, мобильных устройств и планше .

Detector: определение браузера и способностей устройства при помощи PHP

QUOjs: миниатюрная JS-библиотека для мобильных проектов

Countly: мобильное приложение для аналитики с открытым кодом

syze: Media Queries, основанные на Javascript

jQuery Mobile становится стабильнее с версией 1.0

Lungo.js: мобильная веб-платформа на HTML5

MobileESP: легкое и быстро определение мобильных устройств

Kivy: бесплатная кросс-платформенная библиотека для разработки инновационны .

PhotoSwipe: галерея изображений для мобильных и планшетных устройств

10 принципов веб-дизайна, которые повышают конверсию сайта


Копирование материалов сайта разрешено только с указанием активной индексируемой гиперссылки на наш сайт!

Мы сами вдохновляемся материалами, которые предлагаем вам на обозрение, будь то интересные руководства или полезные и впечатляющие подборки (дизайнов, шаблонов, сниппетов и т.д.), и мы всегда сохраняем ссылки на источники, и сообщаем авторов изображений, использованных в подборках или руководствах. Зачастую, ссылка на источник не ведёт напрямую к автору шедевра, но мы ведь не волшебники, чтобы угадывать, кто является автором.

Если кто-то захочет использовать какие-либо изображения, графические элементы, исходники, которые мы здесь предоставляем, то единственное требование, выставленное к перепосту, заключается в сохранении ссылки на источник, а также соблюдение условий лицензионного соглашения (если таковое имеется). Если кто-то желает модифицировать тот или иной продукт, изменить его, подкорректировать, то этому энтузиасту придется самостоятельно искать настоящего автора материала.

Как определить, является ли это мобильным устройством с PHP?

Я пишу веб-сайт с PHP. Поскольку для доступа в Интернет кому-либо из них необходимо будет получить доступ, я должен создать мобильную версию. Как лучше всего проверить, является ли это мобильным устройством? Я не хочу иметь оператор switch с 50 устройствами в конце, так как я не только хочу поддерживать iPhone.

Есть ли класс PHP, который я мог бы использовать?

Вы должны посмотреть на Tera-WURFL , это программный пакет на базе PHP и MySQL, который обнаруживает мобильные устройства и их возможности. Вот код Tera-WURFL, который вы использовали бы, чтобы определить, мобильное устройство для посещения:

Для части перенаправления я использовал

Это приводит к гораздо менее ложным срабатываниям.

Будет ли пользовательский агент в запросе предоставить вам достаточно информации для принятия решения?

Здесь есть хороший список пользовательских агентов .

Для обнаружения на основе User-Agent используйте базу данных WURFL . По крайней мере, это всеобъемлющий и постоянно обновляемый.

Если вы нацеливаетесь только на высококачественные (ish) телефоны, вам может не понадобиться их вообще обнаруживать, просто вставляйте соответствующие таблицы стилей мобильных устройств .

Если вы хотите настроить контент на какое-либо конкретное устройство, например, чтобы изменить размер изображений на ширину устройства, вы также можете использовать DeviceAtlas . На основе useragent запрашивающего устройства он укажет размер экрана, поддерживаемые форматы изображений, поддерживаемые типы разметки, максимальный размер страницы и т. Д.

Что такое мобильное устройство? Более слабый процессор? Более низкая пропускная способность? В действительности у него есть экран, разрешение которого ниже 320×240, а глубина цвета ниже 24.

Это не лучший вариант для решения мобильного устройства путем проверки агента пользователя. Вы должны присоединиться к проверке ширины устройства JavaScript с проверкой агента пользователя PHP. Но до некоторой степени проверка агента пользователя приемлема.

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

Я хотел бы показать различные веб-страницы из ресурсов в зависимости от типа устройства:

однако, это кажется бесполезным для моего случая.

это решение работает для меня сейчас:

эта тема обсуждается в Android обучение:

если Вы читаете всю тему, они объясняют, как установить логическое значение в определенном файле значений (как res/values-sw600dp/attr.XML-код):

потому что квалификатор sw600dp действителен только для платформ выше android 3.2. Если вы хотите убедиться, что этот метод работает на всех платформах (до 3.2), создайте тот же файл в res / values-xlarge папка:

затем в файле" стандартное " значение (как res/values/) вы устанавливаете логическое значение false:

затем в вашей деятельности вы можете получить это значение и проверить, работаете ли вы на устройстве размера планшета:

Я считаю, что планшет имеет по крайней мере 6,5-дюймовый экран. Вот как его вычислить, основываясь на ответе Нольфа выше.

Я предполагаю, что при определении "мобильный/телефон" вы хотите знать, можете ли вы сделать телефонный звонок на устройстве, которое не может быть сделано на чем-то, что будет определено как "планшет". Способ проверить это ниже. Если вы хотите знать что-то на основе датчиков, размер экрана, и т. д., то это действительно другой вопрос.

кроме того, при использовании разрешения экрана или управления ресурсами большой vs xlarge, возможно, был допустимым подходом в прошлом новый "мобильный" теперь устройства с большими экранами и высоким разрешением, что они размывают эту линию, а если вы действительно желаете узнать телефонный звонок против нет возможности телефонного звонка в "лучших".

мне нравится решение Ol_v_er, и это простота, однако я обнаружил, что это не всегда так просто, что с новыми устройствами и дисплеями постоянно выходит, и я хочу быть немного более "зернистым" в попытке выяснить фактический размер экрана. Еще одно решение, которое я нашел здесь by John использует строковый ресурс вместо логического, чтобы указать размер планшета. Итак, вместо того, чтобы просто поместить true в /res/values-sw600dp/screen.xml-файл (предполагая, что это макеты для небольших планшетов) вы бы поставили:

ссылайтесь на него следующим образом, а затем делайте то, что вам нужно, основываясь на результате:

ответ Шона О'Тула для обнаружение 7 дюймов и 10-дюймовый планшет программно было также то, что я искал. Вы можете проверить это, если ответы здесь не позволяют вам быть такими конкретными, как вам хотелось бы. Он делает большую работу, объясняя, как рассчитать различные показатели, чтобы выяснить, что вы вообще-то разбираюсь.

обновление

глядя на исходный код приложения Google I/O 2013, я наткнулся на следующее, что они используют, чтобы определить, является ли устройство планшетом или нет, поэтому я решил добавить его. Вышеизложенное дает вам немного больше "контроля" над ним, но если вы просто хотите знать, является ли это планшетом, следующее довольно просто:

поскольку планшет в целом больше, чем смартфоны, и поскольку планшет с низким разрешением может иметь такое же количество пикселей, что и смартфон с высоким разрешением, один из способов решить эту проблему-рассчитать физический размер (не разрешение) устройства:

лучший вариант, который я нашел, и менее навязчивый, - установить тег param в вашем xml, например

ТЕЛЕФОН XML LAYOUT

ПЛАНШЕТ XML LAYOUT

и потом называть это занятие:

надеюсь, что это работает для u.

Я использую этот метод во всех моих приложениях, и он работает успешно:

решение, которое я использую, заключается в определении двух макетов. Например, с папкой layout макет-sw600dp Я использую это, чтобы предоставить кнопку Меню для пользователей планшета и скрыть это для пользователей телефона. Таким образом, мне (пока) не нужно реализовывать ActionBar для моих существующих приложений .

Я обнаружил, что на эмуляторе Nook getPhoneType() по какой-то причине возвращает тип телефона "GSM", поэтому проверка типа телефона ненадежна. Аналогично, getNetworkType () вернет 0 для телефона в самолете режим. На самом деле, режим полета вызовет getLine1Number() и getSim* методы для возврата null тоже. Но даже в режиме полета IMEI телефона сохраняется.

Я хотел бы получить информацию об устройстве, чтобы узнать, есть ли это смартфон или планшет. Как мне это сделать?

Я хотел бы показать разные веб-страницы из ресурсов на основе типа устройства:

Однако для моего случая это кажется бесполезным.

Теперь это решение работает для меня:

Эта тема обсуждается в обучении Android:

Если вы прочитаете всю тему, они объяснят, как установить логическое значение в конкретном файле значений (как res/values-sw600dp/attr.xml):

Потому что квалификатор sw600dp действителен только для платформ выше Android 3.2. Если вы хотите убедиться, что этот метод работает на всех платформах (до 3.2), создайте тот же файл в папке res/values-xlarge:

Затем в "стандартном" файле значений (как res/values /) вы устанавливаете логическое значение false:

Затем в своей деятельности вы можете получить это значение и проверить, работаете ли вы на устройстве размером с планшет:

Я считаю, что планшет имеет по меньшей мере 6,5-дюймовый экран. Вот как это вычислить, основываясь на ответе Nolf выше.

Я предполагаю, что когда вы определяете "Мобильный телефон", вы хотите знать, можете ли вы сделать телефонный звонок на устройстве, что нельзя сделать на чем-то, что будет определено как "планшет". Способ проверить это ниже. Если вы хотите узнать что-то по сенсорам, размеру экрана и т.д., То это действительно другой вопрос.

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

Мне нравится решение Ol_v_er, и это простота, но я обнаружил, что это не всегда так просто, что с постоянно появляющимися новыми устройствами и дисплеями, и я хочу быть немного более "гранулированным", пытаясь выяснить фактический размер экрана. Еще одно решение, которое я нашел здесь от John, использует ресурс String вместо логического, чтобы указать размер планшета. Таким образом, вместо того, чтобы просто поместить true в файл /res/values -sw600dp/screen.xml(предполагая, что это ваши макеты для небольших планшетов), вы должны поставить:

Опишите это следующим образом, а затем выполните то, что вам нужно, на основе результата:

Ответ Sean O'Toole для Обнаружение 7-дюймового и 10-дюймового планшета программным путем также было тем, что я искал. Вы можете проверить это, если ответы здесь не позволяют вам быть настолько конкретными, насколько вам бы хотелось. Он отлично справляется с объяснением того, как рассчитать разные показатели, чтобы выяснить, что вы на самом деле имеете в виду.

UPDATE

Изучая исходный код приложения I/O 2013 года, я столкнулся с следующим: они используют, чтобы определить, является ли устройство планшетом или нет, поэтому я решил добавить его. Вышесказанное дает вам немного больше "контроля" над ним, но если вы просто хотите узнать, есть ли это планшет, следующее довольно просто:

Читайте также: