কীভাবে সাধারণভাবে অ্যান্ড্রয়েড ট্যাবলেটগুলি সনাক্ত করতে পারে। ব্যবহারিক দূত?


103

আমি সর্বত্র তাকিয়ে আছে। আমরা আমাদের ট্যাবলেট সাইট পরীক্ষার চেষ্টা করতে একটি মোটরোলা জুম ব্যবহার করছি। সমস্যাটি হ'ল অ্যান্ড্রয়েড ইউজারেজেন্ট একটি সাধারণ ইউজারেজেন্ট এবং ট্যাবলেট অ্যান্ড্রয়েড এবং মোবাইল অ্যান্ড্রয়েডের মধ্যে কোনও পার্থক্য নেই। আমি কেবল জুম ইউজ্রেজেন্টের মতো নির্দিষ্ট ডিভাইসটিকে টার্গেট করতে চাই না যেহেতু অ্যান্ড্রয়েড সম্ভবত অদূর ভবিষ্যতে একাধিক ট্যাবলেট ডিভাইসে থাকবে।

আমরা উম্ব্রাকো সিএমএস ব্যবহার করছি, এবং আমরা 51 ডিগ্রি.মবি সমাধানটি ব্যবহার করে দেখেছি এবং এই মুহুর্তে এটি আমাদের প্রয়োজনের জন্য কাজ করবে না। হয়তো ভবিষ্যতে. আমি জানি 51 ডিগ্রি এবং আম্ব্রাকোতে কিছু লোক উমব্রাকোতে কিছু সংহতকরণ করতে যাচ্ছেন, তবে চূড়ান্ত প্রকল্পটি সম্ভবত কয়েকমাস বাইরে বের হবে না।
সুতরাং, কেন আমরা একটি অ্যান্ড্রয়েড ট্যাবলেটের ইউজারেজেন্ট স্ট্রিং সনাক্ত করতে চাই এবং এটি বর্তমানে আমাদের মোবাইল সাইটটিতে যেমন সরাসরি প্রদর্শিত হচ্ছে না তেমন।

যদি কেউ সাধারণভাবে অ্যান্ড্রয়েড ট্যাবলেট কীভাবে সনাক্ত করতে জানেন তবে নির্দিষ্ট ডিভাইসটি খুব কার্যকর হবে না।


2
আমি কেবল অনুমান করছি, তবে সম্ভবত দেখার রেজোলিউশনটি কতটা উচ্চতর রয়েছে তা দেখার উপায় আছে?
ফোনন

@ ফনন, হ্যাঁ আমরা জাভাস্ক্রিপ্টটি ব্যবহার করে সার্ভারে পুনরায় একটি মান পাঠাতে চাইছি। আমরা আমাদের কাছে একটি __doPostBack চেষ্টা করছি তবে মনে হচ্ছে এটি আমাদের মান ফেরত পাঠাচ্ছে না। আমাদের একটি লুকানো ইনপুট মান রয়েছে, এটি ক্লায়েন্টের দিক দেখায় তবে আমরা এটি সার্ভারের দিক থেকে ফিরে পাচ্ছি না।
ক্লোস ডিজাইন

আমি আপনাকে এখানে সাহায্য করতে পারি কিনা তা নিশ্চিত নই।
ফোনন

উত্তর:


112

সমস্যাটি হ'ল অ্যান্ড্রয়েড ব্যবহারকারী-এজেন্ট একজন সাধারণ ব্যবহারকারী-এজেন্ট এবং ট্যাবলেট অ্যান্ড্রয়েড এবং মোবাইল অ্যান্ড্রয়েডের মধ্যে কোনও পার্থক্য নেই।

এটি ভুল। মোবাইল অ্যান্ড্রয়েডের ব্যবহারকারী-এজেন্ট শিরোনামে "মোবাইল" স্ট্রিং রয়েছে। ট্যাবলেট অ্যান্ড্রয়েড না।

তবে এটি উল্লেখযোগ্য যে এখানে বেশ কয়েকটি ট্যাবলেট রয়েছে যা ব্যবহারকারী এজেন্টে "মোবাইল" সাফারি রিপোর্ট করে এবং পরবর্তীটি মোবাইল এবং ট্যাবলেটের মধ্যে পার্থক্য করার একমাত্র / শক্ত উপায় নয়


3
আপনি সঠিক. আমি কেবল একটি স্ট্রিং খুঁজছিলাম যা অ্যান্ড্রয়েড ধারণ করে। আমাকে স্ট্রিংটি অনুসন্ধান করতে হয়েছিল যাতে অ্যান্ড্রয়েড এবং! মোবাইল রয়েছে। এটি সম্পর্কে টিম ব্রের নিবন্ধটি পেয়েছি।
ক্লোজডিজাইন

6
@yoavf: এটি XOOM এর অ্যান্ড্রয়েড 3.1 আপডেটের সাথে স্থির হয়েছে বলে মনে হচ্ছে। আমি একটি এক্সওএমের মালিক এবং এটি কেবল পরীক্ষা করেছি - কোনও "মোবাইল" নেই।
কমন্সওয়্যার

27
এই উত্তরটি সম্পূর্ণ সঠিক নয়। বেশ কয়েকটি ট্যাবলেট রয়েছে - এমনকি সর্বশেষতম কিন্ডল ফায়ার - যা ব্যবহারকারী এজেন্ট স্ট্রিংয়ে "মোবাইল" সাফারি রিপোর্ট করে। এই মুহুর্তে ট্যাবলেট বনাম ফোন সনাক্ত করার কোনও শক্ত উপায় বলে মনে হচ্ছে না যদি না এটি ব্যবহারকারীর এজেন্ট এবং রেজোলিউশন সনাক্তকরণের জন্য সম্ভাব্য সহায়তার সংমিশ্রণ হয়।
আরাফোন

22
মিথ্যা! স্যামসঙ গ্যালাক্সি ট্যাবটি সুস্পষ্ট ট্যাবলেট তবে এটির ব্যবহারকারী এজেন্টে এটি "মোবাইল" রয়েছে
পুচু

1
আমি বিশ্বাস করি যে "মোবাইল" সংযোজনটি অ্যান্ড্রয়েড 4 এর সাথে ছিল, এখনও 4-এর অনেকগুলি ডিভাইস রয়েছে ... অ্যান্ড্রয়েড 2.x এর জন্য আমি ফোন ধরে নিয়েছি, 3.x এর জন্য আমি ট্যাবলেট ধরেছি (যদিও কয়েকটি ভ্রান্ত ইতিবাচক থাকবে) ... অন্যথায় আপনি মোবাইলের জন্য পরীক্ষা করতে পারেন ...
ট্র্যাকার

20

@ কার্লোস: তার নিবন্ধে টিম ব্রে এটিকে সুপারিশ করেছেন ( গুগলের অন্য পোস্টের মতো ) তবে দুর্ভাগ্যক্রমে এটি সমস্ত ট্যাবলেট প্রস্তুতকারীরা প্রয়োগ করছেন না।

... আমরা সুপারিশ করি যে লার্জ-ফর্ম-ফ্যাক্টর ডিভাইসগুলি উত্পাদনকারী ব্যবহারকারী এজেন্ট থেকে "মোবাইল" সরান ...

বেশিরভাগ অ্যান্ড্রয়েড ট্যাবলেট ব্যবহারকারী-এজেন্ট স্ট্রিংগুলি আমি মোবাইল সাফারি ব্যবহার করতে দেখেছি, যেমন স্যামসাং গ্যালাক্সি ট্যাব:

মজিলা / 5.0 (লিনাক্স; ইউ; অ্যান্ড্রয়েড 2.2; এন-ইউএস; এসসিএইচ -88 বিল্ড / ফ্রয়িও) অ্যাপলওয়েবকিট / 533.1 (কেএইচটিএমএল, গেকোর মতো) সংস্করণ / 4.0 মোবাইল সাফারি / 533.1

তাই এই মুহুর্তে আমি অ্যান্ড্রয়েড ট্যাবলেটগুলি সনাক্ত করতে ডিভাইসের নাম পরীক্ষা করছি। যতক্ষণ না বাজারে কয়েকটি মডেল রয়েছে, ঠিক আছে তবে শীঘ্রই এটি একটি কুরুচিপূর্ণ সমাধান হবে।

কমপক্ষে XOOM এর ক্ষেত্রে, মোবাইলের অংশটি শেষ হয়ে গেছে বলে মনে হচ্ছে:

মজিলা / 5.0 (লিনাক্স; ইউ; অ্যান্ড্রয়েড 3.0; এন-ইউএস; জুম বিল্ড / এইচআরআই 39) অ্যাপলওয়েবকিট / 534.13 (কেএইচটিএমএল, গেকোর মতো) সংস্করণ / 4.0 সাফারি / 534.13

তবে বর্তমানে অ্যান্ডরিড ৩.x সহ কেবলমাত্র ট্যাবলেট রয়েছে বলে অ্যান্ড্রয়েড 3 এ পরীক্ষা করা যথেষ্ট।


1
আপনি যে ডিভাইসগুলির বিরুদ্ধে পরীক্ষা করেছেন এবং কোডিংয়ের তালিকা পোস্ট করতে পারেন।
এলটেক

12

মো 'মোবাইল' ব্যবহারকারী-এজেন্ট সনাক্ত করা আরও ভাল

আপনি যদি এখনও টাচ-স্ক্রিন অপ্টিমাইজেশনের মতো অ্যান্ড্রয়েড-নির্দিষ্ট বৈশিষ্ট্যগুলি প্রয়োগ করতে ব্যবহারকারী-এজেন্টে "অ্যান্ড্রয়েড" সনাক্ত করতে চাইতে পারেন তবে আমাদের মূল বার্তাটি: আপনার মোবাইল সাইটটি ইউএ স্নিফিংয়ের উপর নির্ভর করে, দয়া করে "মোবাইল" স্ট্রিংগুলি সনাক্ত করুন এবং ব্যবহারকারী-এজেন্টে কেবল "অ্যান্ড্রয়েড" এর চেয়ে "অ্যান্ড্রয়েড"। এটি আপনার মোবাইল এবং ট্যাবলেট দর্শকদের উভয়কেই যথাযথভাবে পরিবেশন করতে সহায়তা করে।

ব্রাউজারের মাধ্যমে অ্যান্ড্রয়েড ডিভাইস সনাক্ত করা হচ্ছে

 < script language="javascript"> <!--
     var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
              if (mobile) {
                  alert("MOBILE DEVICE DETECTED");
                  document.write("<b>----------------------------------------<br>")
                  document.write("<b>" + navigator.userAgent + "<br>")
                  document.write("<b>----------------------------------------<br>")
                  var userAgent = navigator.userAgent.toLowerCase();
                  if ((userAgent.search("android") > -1) && (userAgent.search("mobile") > -1))
                         document.write("<b> ANDROID MOBILE <br>")
                   else if ((userAgent.search("android") > -1) && !(userAgent.search("mobile") > -1))
                       document.write("<b> ANDROID TABLET <br>")
              }
              else
                  alert("NO MOBILE DEVICE DETECTED"); //--> </script>

3
এটি পুরোপুরি কাজ করে। আমি আইপ্যাড এবং আইফোন / আইপড জন্য এটি জুড়েছি। else if (userAgent.search("ipad") > -1) document.write("<b> iPad <br>") else if ((userAgent.search("iphone") > -1)||(userAgent.search("ipod") > -1)) document.write("<b> iPhone or iPod <br>")
স্পেন্সার কোল

এটি মোজিলা / ৫.০ (লিনাক্স; ইউ; অ্যান্ড্রয়েড ২.২; এন-জিবি; জিটি-পি -1000 বিল্ড / ফ্রয়ও) অ্যাপলওয়েবকিট / 533.1 (কেএইচটিএমএল, জেকোর মতো) সংস্করণ / 4.0 মোবাইল সাফারি / 533.1 এর জন্য কীভাবে কাজ করে যা "মোবাইল" শব্দটি রয়েছে স্যামসং গ্যালাক্সি ট্যাবলেট এর জন্য এটি?
এলটেক

8

আপনি এই স্ক্রিপ্টটি চেষ্টা করে দেখতে পারেন যেহেতু আপনি কেবল জুমকে লক্ষ্য করতে চান না। আমার কোনও জুম নেই, তবে কাজ করা উচিত।

function mobile_detect(mobile,tablet,mobile_redirect,tablet_redirect,debug) {
var ismobile = (/iphone|ipod|android|blackberry|opera|mini|windows\sce|palm|smartphone|iemobile/i.test(navigator.userAgent.toLowerCase()));
var istablet = (/ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(navigator.userAgent.toLowerCase()));

if (debug == true) {
    alert(navigator.userAgent);
}

if (ismobile && mobile==true) {
    if (debug == true) {
        alert("Mobile Browser");
    }
    window.location = mobile_redirect;
} else if (istablet && tablet==true) {
    if (debug == true) {
        alert("Tablet Browser");
    }
    window.location = tablet_redirect;
}
}

আমি গিথুবে একটি প্রকল্প তৈরি করেছি। এটি দেখুন - https://github.com/codefuze/js-mobile-tocolate-redirect । কিছু ভুল থাকলে সমস্যা জমা দিতে নির্দ্বিধায়!


1
এটি অ্যান্ড্রয়েড সংস্করণ> 3.0 এর জন্য কাজ করবে না যেমন আইসিএস (4.0)। আমি মনে করি গৃহীত উত্তরটি সঠিক - "মোবাইল সাফারি" ইউজারেজেন্টে আছে কিনা তা পরীক্ষা করে দেখুন।
সুমন

অন্যান্য কিন্ডল সম্পর্কে নিশ্চিত নয়, তবে কিন্ডেল ফায়ার 1 এর ব্যবহারকারী-এজেন্ট স্ট্রিংটিতে 'কিন্ডেল' নেই - না এর মধ্যে 'অ্যান্ড্রয়েড' রয়েছে; একমাত্র সূত্রটি হ'ল 'সিল্ক' এবং 'সিল্ক-ত্বরণ' শব্দ।
mklement0

6

একবার আমি ব্যবহারকারী এজেন্টে অ্যান্ড্রয়েড সনাক্ত করে ফেলেছি, আমি ট্যাবলেট এবং স্মার্টফোন ব্রাউজারগুলির মধ্যে এটির মধ্যে পার্থক্য করি (এটি পাইথন ব্যবহার করছে, তবে অন্যান্য প্রোগ্রামিং ভাষার জন্য একইভাবে সহজ):

if ("Android" in agent):
  if ("Mobile" in agent):
    deviceType = "Phone"
  else:
    deviceType = "Tablet"

আপডেট হয়েছে: নীচের মন্তব্য অনুসারে অ্যান্ড্রয়েডে ক্রোমের ব্যবহার প্রতিফলিত করতে।


এজেন্টে শুধু "মোবাইল" খুঁজছেন না কেন?
এরেন টানটেকিন

আমার মনে হয় এটিও কার্যকর হতে পারে তবে আমি মনে করি কেবল "মোবাইল" অনুসন্ধান করা বিপজ্জনক হতে পারে - নামগুলির সাথে ডিভাইস থাকতে পারে, "এইচটিসি মোবাইল" বলুন, ইত্যাদি। আমি মনে করি এটিই প্রস্তাবিত পদ্ধতি is
সুমন

1
গুগল এখন অ্যান্ড্রয়েডের জন্য ক্রোম প্রকাশ করেছে, আপনার পদ্ধতির জন্য কিছুটা সমস্যা হতে পারে। কারণ, অ্যান্ড্রয়েডে ক্রোম স্টক অ্যান্ড্রয়েড ব্রাউজার যেমন করছে তেমনি সাধারণ "মোবাইল সাফারি" এর পরিবর্তে নিজেকে "ক্রোম মোবাইল" হিসাবে প্রতিবেদন করবে। কিছু অফিসিয়াল সুপারিশের জন্য: developers.google.com/chrome/mobile/docs/user-agent
এরেন টানটেকিন

4

এই সাইটে এজেন্ট স্ট্রিংয়ের উপর ভিত্তি করে:

http://www.webapps-online.com/online-tools/user-agent-strings

এই ফলাফলগুলি এলো:
প্রথম:

সমস্ত ট্যাবলেট ডিভাইসগুলির মধ্যে রয়েছে:
1. ট্যাবলেট
2. আইপ্যাড

দ্বিতীয়ত:

সমস্ত ফোন ডিভাইসগুলির মধ্যে রয়েছে:
1. মোবাইল
2. ফোন

তৃতীয়:

ট্যাবলেট এবং ফোন ডিভাইসগুলির মধ্যে রয়েছে:
1. অ্যান্ড্রয়েড

আপনি যদি স্তর দ্বারা স্তর সনাক্ত করতে পারেন, আমি জিনিস ফলাফল 90 শতাংশ সত্য। শেয়ারপয়েন্ট ডিভাইস চ্যানেলগুলি পছন্দ করুন।


2

আমি যা ব্যবহার করি তা এখানে:

public static boolean onTablet()
    {
    int intScreenSize = getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;

    return (intScreenSize == Configuration.SCREENLAYOUT_SIZE_LARGE) // LARGE
    || (intScreenSize == Configuration.SCREENLAYOUT_SIZE_LARGE + 1); // Configuration.SCREENLAYOUT_SIZE_XLARGE
    }

2

আমরা যদি কিছু ট্যাবলেট বাদ "মোবাইল" বলতে পারবে না যদিও অনেক স্যামসাং গ্যালাক্সি ট্যাব সহ না , তাদের ব্যবহারকারী-এজেন্ট মোবাইল আছে এটা একটি Android ট্যাবলেট এবং অ্যান্ড্রয়েড ফোন মধ্যে সনাক্ত করা অসম্ভব উপার্জন মডেল সুনির্দিষ্ট পরীক্ষণ অবলম্বন না। এই আইএমএইচও হ'ল সময় নষ্ট না করে আপনি যদি কোনও মাসিক ভিত্তিতে আপনার ডিভাইস তালিকাকে আপডেট এবং প্রসারিত করার পরিকল্পনা না করেন।

দুর্ভাগ্যক্রমে এখানে সেরা সমাধান হ'ল এই সম্পর্কে গুগলের কাছে অভিযোগ করা এবং এন্ড্রয়েডের জন্য ক্রোম ঠিক করা এনে এটি একটি মোবাইল ডিভাইস এবং ট্যাবলেটটির মধ্যে সনাক্ত করার জন্য কিছু পাঠ্য যুক্ত করে। নরক এমনকি একটি একক অক্ষর এম বা টি স্ট্রিংয়ের একটি নির্দিষ্ট জায়গায় যথেষ্ট হবে, তবে আমি অনুমান করি যে এটি খুব বেশি অর্থবোধ করে।


1

জুমের ব্যবহারকারী-এজেন্টে জুম শব্দ রয়েছে: মজিলা / 5.0 (লিনাক্স; ইউ; অ্যান্ড্রয়েড 3.0.1; এন-ইউএস; জুম বিল্ড / এইচআরআই 66) অ্যাপলওয়েবকিট / 534.13 (কেএইচটিএমএল, গেকোর মতো) সংস্করণ / 4.0 সাফারি / 534.13

গ্যালাক্সি ট্যাবের ব্যবহারকারী-এজেন্টে "মোবাইল" রয়েছে: মজিলা / 5.0 (লিনাক্স; ইউ; অ্যান্ড্রয়েড 2.2; এন-ইউএস; এসসিএইচ -88 বিল্ড / ফ্রয়িও) অ্যাপলওয়েবকিট / 533.1 (কেএইচটিএমএল, গেকোর মতো) সংস্করণ / 4.0 মোবাইল সাফারি / 533.1

সুতরাং, এটি জুম সনাক্ত করা সহজ, একটি নির্দিষ্ট অ্যান্ড্রয়েড সংস্করণ মোবাইল কিনা তা সনাক্ত করা শক্ত।


1

বেশিরভাগ আধুনিক ট্যাবলেটগুলি মধুচক্র এফ 3.x চালায় কোনও ফোন ডিফল্টরূপে 3.x চালায় না। বর্তমানে ২.x চালিত বেশিরভাগ ট্যাবলেটগুলির ক্ষমতা কম রয়েছে এবং যে কোনও উপায়ে মোবাইল সাইটের সাথে উপস্থাপন করার সময় এটি আরও ভাল। আমি জানি এটি ত্রুটিহীন নয় .. তবে আমি অনুমান করি এটি মোবাইলের অনুপস্থিতির চেয়ে অনেক বেশি নির্ভুল ..


1
প্রকৃতপক্ষে ফোনগুলি এমনকি 3.x চালাতে পারে না কারণ এটি কেবলমাত্র অ্যান্ড্রয়েডের ট্যাবলেট -র মুক্তি ছিল এবং এটি সোর্স খোলা ছিল না।
এরেন টানটেকিন

1

মোবাইল অ্যান্ড্রয়েডের ব্যবহারকারী-এজেন্ট স্ট্রিংটিতে "মোবাইল" থাকতে পারে, যদি এটি কোনও ট্যাবলেটে অ্যান্ড্রয়েডের জন্য অপেরা মোবাইল ব্যবহার করে তবে কী হবে? এর ব্যবহারকারী-এজেন্ট স্ট্রিংটিতে এখনও এটি "মোবাইল" থাকবে তবে এটি ট্যাবলেট আকারের সাইটগুলি প্রদর্শন করা উচিত। আপনাকে "মোবাইল" পরীক্ষা করতে হবে যা কেবল "মোবাইল" এর চেয়ে "অপেরা" দ্বারা পূর্ববর্তী নয়

অথবা আপনি অপেরা মোবাইল সম্পর্কে ভুলে যেতে পারেন।


1
অপেরা মোবাইল ব্যবহারকারীর স্ট্রিংয়ে 'মোবাইল' ব্যবহার করে না, এটি 'মুবি' ব্যবহার করে। এখানে
ইয়ান স্টানওয়ে

2
মোবাইলগুলির জন্য অপেরা মোবাইল ব্যবহারকারীর এজেন্ট স্ট্রিংয়ে "অপেরা মবি" রয়েছে, তবে ট্যাবলেটগুলির জন্য অপেরা মোবাইলের ব্যবহারকারী এজেন্ট স্ট্রিংয়ে "অপেরা ট্যাবলেট" রয়েছে।
তাগাওয়া

1

আমি ব্যবহার সুপারিশ করবে Categorizr যদি ব্যবহারকারী একটি ট্যাবলেটে হয় সনাক্ত করতে। আপনি এখানে শ্রেণিবদ্ধ পরীক্ষার ফলাফলগুলি দেখতে পারেন ।


1

আপনি যদি "মোবাইল" এর অনুপস্থিতি ব্যবহার করেন তবে এটি প্রায় সঠিক। তবে এইচটিসি সেনসেশন 4 জি (অ্যান্ড্রয়েড 2.X সহ 4.3 ইঞ্চি) রয়েছে যা মোবাইল কীওয়ার্ডটি প্রেরণ করে না।

যে কারণে আপনি আলাদাভাবে এটি চিকিত্সা করতে চাইতে পারেন তা হ'ল iframesইত্যাদি is


0

51 ডিগ্রি বিটা, 1.0.1.6 এবং সর্বশেষ স্থিতিশীল রিলিজ 1.0.2.2 (4/28/2011) এ এখন ট্যাবলেটটি স্নিগ্ধ করার ক্ষমতা রয়েছে। মূলত:

string capability = Request.Browser["is_tablet"];

আশা করি এটি আপনাকে সহায়তা করবে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.