Question

Im using Mobile-Detect library to detect some mobile device and change to mobile, iOS works fine, but Samsung galaxy S4 is not being detected,

PHP

require_once 'php/Mobile_Detect.php';
$detect = new Mobile_Detect;
if ($detect->isMobile()){
   include_once 'php/header-full.php';
} else {
    include_once 'desktop.php';
}

Mobile_Detect Version 2.7.6. Testing Site.

Was it helpful?

Solution 2

I went to http://demo.mobiledetect.net/ from my Samsung S4, and it worked perfectly. Probably you just need to update the library, or take a look at your settings. Anyways, i use chrome and all my settings are the default ones, and everything worked fine, so probably if you get the latest library, you dont have to care of anything else.

enter image description here enter image description here enter image description here

OTHER TIPS

This can be easily achieved though .htaccess file and environment variables of PHP

Check this tutorial

Try "Detect Mobile Browsers | Open source mobile phone detection".

This : http://detectmobilebrowsers.com/

<?php
$useragent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $useragent) || preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i', substr($useragent, 0, 4))) {
   include_once 'php/header-full.php';
} else {
   include_once 'desktop.php';
}

?>

please insert this code and see what happen

echo $_SERVER['HTTP_USER_AGENT'];

if you cant see anything....then this may be because of using proxy. or your browser does not give info about your mobile in useragent string

if above are working then problem may be in your php detect file

From your Samsung S4, visit this site: http://demo.mobiledetect.net/. I tried it from my S4 and the site displayed "It is a mobile". So the library is detecting S4 properly.

Also, visit http://whatismyuseragent.com from your phone. See what useragent string is being sent to the webserver from the phone.

If the library doesn't support this phone, you may manually check the user agent using PHP. The user agent is stored in this PHP variable:

$_SERVER['HTTP_USER_AGENT']

Compare it to the phone's user agent. To find the phone's user agent (specifically for samsung devices), first find the model id here.

As you can see, Samsung Galaxy S4 has this model id: "GT-I9500" and therefore, it's user agent typically starts with "Mozilla/5.0 (Linux; Android 4.2.2; GT-I9500".

Since the android version might be different simply search for the model id in the user agent. For example:

if (strpos($_SERVER['HTTP_USER_AGENT'], "GT-I9500") !== FALSE)
    print "Samsung Galaxy S4";

There is another case in which the phone's browser is not sending the user agent header at all. In this case, you can write JavaScript code that will run on the phone's browser and will send the user agent to you. For this, you have this JavaScript variable:

navigator.userAgent

You can use ajax to send it to your server or handle the case using JavaScript code.

Good Luck!

Try the class Mobile Detect. It's an open source. you can get refer the following link

Reference Link

Also try my example too

Click here for my example

Your issue is most likely that you are running your Android phone on desktop mode.

Desktop mode will give a UA of:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24

If not it will identify as:

Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; GT-I9300 Build/IMM76K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

You can read more about this here:

Detecting mobile phone with wurfl or mobiledetect.net not working on Galaxy S3

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top