Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

कोटलिन का उपयोग करके एंड्रॉइड टैबलेट और फोन का पता कैसे लगाएं?

एंड्रॉइड में टैबलेट बनाम फोन का पता लगाना

यह उदाहरण दर्शाता है कि TelephonyManager और स्क्रीन आकार का उपयोग करके डिवाइस को फोन या टैबलेट के रूप में कैसे पहचाना जाए।

चरण 1: नया प्रोजेक्ट बनाएं

एंड्रॉइड स्टूडियो में File → New Project चुनें।

चरण 2: लेआउट (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".MainActivity"> 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Tutorials Point"
        android:textAlignment="center"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="32sp"
        android:textStyle="bold" /> 
    <TextView
        android:id="@+id/textViewDeviceType"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="डिवाइस प्रकार का पता लगा रहा है..."
        android:textAlignment="center"
        android:textColor="@android:color/black"
        android:textSize="24sp"
        android:textStyle="bold" /> 
    <Button
        android:id="@+id/btnCheckAgain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textViewDeviceType"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:text="फिर से जांचें" /> 
</RelativeLayout>

चरण 3: MainActivity.kt (एकाधिक पहचान विधियाँ)

import android.content.Context
import android.content.pm.ConfigurationInfo
import android.os.Build
import android.os.Bundle
import android.telephony.TelephonyManager
import android.util.DisplayMetrics
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    private lateinit var textViewDeviceType: TextView
    private lateinit var btnCheckAgain: Button
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        
        textViewDeviceType = findViewById(R.id.textViewDeviceType)
        btnCheckAgain = findViewById(R.id.btnCheckAgain)
        
        btnCheckAgain.setOnClickListener { detectDeviceType() }
        detectDeviceType()
    }
    
    private fun detectDeviceType() {
        val results = mutableListOf()
        
        // विधि 1: TelephonyManager (कॉल क्षमता जांचता है)
        val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
        val isPhoneByTelephony = telephonyManager.phoneType != TelephonyManager.PHONE_TYPE_NONE
        results.add("टेलीफोनी: ${if (isPhoneByTelephony) "फोन" else "टैबलेट/केवल वाईफाई"}")
        
        // विधि 2: स्क्रीन आकार (सबसे विश्वसनीय)
        val isTabletByScreen = isTabletByScreenSize()
        results.add("स्क्रीन आकार: ${if (isTabletByScreen) "टैबलेट" else "फोन"}")
        
        // विधि 3: UI मोड (डॉक/कार मोड)
        val uiMode = resources.configuration.uiMode and ConfigurationInfo.UI_MODE_TYPE_MASK
        val isTelevision = uiMode == ConfigurationInfo.UI_MODE_TYPE_TELEVISION
        val isWatch = uiMode == ConfigurationInfo.UI_MODE_TYPE_WATCH
        results.add("UI मोड: ${when (uiMode) {
            ConfigurationInfo.UI_MODE_TYPE_NORMAL -> "सामान्य"
            ConfigurationInfo.UI_MODE_TYPE_TELEVISION -> "टीवी"
            ConfigurationInfo.UI_MODE_TYPE_WATCH -> "घड़ी"
            ConfigurationInfo.UI_MODE_TYPE_CAR -> "कार"
            ConfigurationInfo.UI_MODE_TYPE_DESK -> "डेस्क"
            ConfigurationInfo.UI_MODE_TYPE_APPLIANCE -> "उपकरण"
            else -> "अज्ञात"
        }}")
        
        // विधि 4: सबसे छोटी चौड़ाई (600dp+ = टैबलेट)
        val smallestWidthDp = resources.configuration.smallestScreenWidthDp
        results.add("सबसे छोटी चौड़ाई: ${smallestWidthDp}dp (${if (smallestWidthDp >= 600) "टैबलेट" else "फोन"})")
        
        // विधि 5: बिल्ड प्रॉपर्टीज (कुछ निर्माताओं के लिए)
        val isTabletBuild = isTabletByBuildProp()
        results.add("बिल्ड प्रॉप: ${if (isTabletBuild) "टैबलेट" else "फोन"}")
        
        // अंतिम निर्णय
        val isTablet = isTabletByScreen || isTabletBuild || smallestWidthDp >= 600
        val finalResult = if (isTablet) "📱 टैबलेट" else "📞 फोन"
        
        textViewDeviceType.text = """
            अंतिम परिणाम: $finalResult
            
            विवरण:
            ${results.joinToString("\n")}
        """.trimIndent()
    }
    
    // स्क्रीन आकार द्वारा टैबलेट पहचान (सबसे विश्वसनीय)
    private fun isTabletByScreenSize(): Boolean {
        val metrics = DisplayMetrics()
        windowManager.defaultDisplay.getRealMetrics(metrics)
        
        val widthDp = metrics.widthPixels / metrics.density
        val heightDp = metrics.heightPixels / metrics.density
        val smallestWidthDp = minOf(widthDp, heightDp)
        
        return smallestWidthDp >= 600 // 600dp+ टैबलेट के लिए पारंपरिक सीमा
    }
    
    // बिल्ड प्रॉपर्टीज द्वारा पहचान (वैकल्पिक)
    private fun isTabletByBuildProp(): Boolean {
        return try {
            // कुछ निर्माता इसे सेट करते हैं
            Build.getString("ro.build.characteristics")?.contains("tablet") == true
        } catch (e: Exception) {
            false
        }
    }
}

चरण 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="https://schemas.android.com/apk/res/android" 
    package="com.example.devicetype"> 
    <application 
        android:allowBackup="true" 
        android:icon="@mipmap/ic_launcher" 
        android:label="@string/app_name" 
        android:roundIcon="@mipmap/ic_launcher_round" 
        android:supportsRtl="true" 
        android:theme="@style/AppTheme"> 
        <activity android:name=".MainActivity"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
    </application> 
</manifest>

पहचान विधियों की तुलना:

विधिविश्वसनीयतानोट्स
TelephonyManagerकमवाईफाई-केवल टैबलेट "फोन" के रूप में दिखते हैं; फोन बिना सिम के "टैबलेट" के रूप में दिखते हैं
सबसे छोटी चौड़ाई (≥600dp)उच्चGoogle का आधिकारिक दिशानिर्देश; अभिविन्यास-स्वतंत्र
स्क्रीन लेआउट (xlarge/large)मध्यमपुराना API; कुछ बड़े फोन "large" के रूप में पंजीकृत होते हैं
UI मोडउच्चटीवी, घड़ी, कार, डेस्क मोड की पहचान करता है
बिल्ड प्रॉपर्टीजचरनिर्माता-निर्भर; हमेशा मौजूद नहीं

संसाधन क्वालिफायर का उपयोग करना (सर्वोत्तम अभ्यास):

कोड में पहचान के बजाय, संसाधन क्वालिफायर का उपयोग करें:

  • res/layout/activity_main.xml - फोन
  • res/layout-sw600dp/activity_main.xml - 7" टैबलेट
  • res/layout-sw720dp/activity_main.xml - 10" टैबलेट

सिस्टम स्वचालित रूप से सही लेआउट चुनता है।

  1. Android में Intent का उपयोग करके फोन कॉल कैसे करें? Android में Intent का उपयोग करके फोन कॉल कैसे करें?

    Android में Intent का उपयोग करके फोन कॉल करना यह उदाहरण दर्शाता है कि Android में Intent का उपयोग करके फोन कॉल कैसे किया जाता है। चरण 1 - नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - res/layout/activity_main.xml में

  1. एंड्रॉइड में डिवाइस फोन है या टैबलेट कैसे पहचानें एंड्रॉइड में डिवाइस फोन है या टैबलेट कैसे पहचानें

    TelephonyManager और स्क्रीन आकार के माध्यम से डिवाइस प्रकार निर्धारित करना एंड्रॉइड में फोन और टैबलेट के बीच अंतर करने के कई तरीके हैं। सबसे विश्वसनीय विधि TelephonyManager.getPhoneType() है जो वॉयस कॉल क्षमता जांचता है, लेकिन स्क्रीन आकार और UI मोड भी उपयोगी संकेत देते हैं। चरण 1: नया प्रोजेक्ट बन

  1. अपने Android फ़ोन या टैबलेट को TV से कनेक्ट करें: आसान चरण और सर्वोत्तम तरीके अपने Android फ़ोन या टैबलेट को TV से कनेक्ट करें: आसान चरण और सर्वोत्तम तरीके

    आधुनिक TV ऑन-डिमांड और स्ट्रीमिंग ऐप्स की लगातार बढ़ती रेंज का समर्थन करते हैं, इसलिए फोन या टैबलेट से सामग्री को मिरर करना बड़े स्क्रीन पर उस सामग्री तक पहुंचने के लिए शायद ही कभी पसंदीदा समाधान होता है। लेकिन जब आप घर से दूर होते हैं और आप अपने ऐप्स में साइन इन नहीं होते हैं, आप नवीनतम ऐप्स के सम