Reputation: 828
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.
Upvotes: 5
Views: 4074
Reputation: 774
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
Upvotes: 0
Reputation: 10947
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.
Upvotes: 1
Reputation: 13167
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';
}
?>
Upvotes: 1
Reputation: 634
This can be easily achieved though .htaccess file and environment variables of PHP
Check this tutorial
Upvotes: 2
Reputation: 297
Try the class Mobile Detect. It's an open source. you can get refer the following link
Also try my example too
Upvotes: 0
Reputation: 59
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!
Upvotes: 0
Reputation: 16524
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.
Upvotes: 0
Reputation:
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
Upvotes: 0