FMUSER वायुहीन प्रसारण वीडियो और ऑडियो अधिक आसान!

[ईमेल संरक्षित] WhatsApp + 8618078869184
भाषा

    Android में प्रसारण की विस्तृत व्याख्या

     

    प्रसारण को दो अलग-अलग प्रकारों में विभाजित किया जाता है: "सामान्य प्रसारण" और "आदेशित प्रसारण"। साधारण प्रसारण पूरी तरह से अतुल्यकालिक है और सभी प्रसारण प्राप्तकर्ताओं द्वारा एक ही समय में (तार्किक रूप से) प्राप्त किया जा सकता है। संदेश वितरण की दक्षता अपेक्षाकृत अधिक है, लेकिन नुकसान यह है कि रिसीवर अगले रिसीवर को प्रसंस्करण परिणाम नहीं दे सकता है, और इसे समाप्त नहीं किया जा सकता है। प्रसारण इरादा प्रचार; हालाँकि, आदेशित प्रसारण रिसीवर द्वारा घोषित प्राथमिकता पर आधारित है (Android में घोषित: इरादे-फ़िल्टर तत्व की प्राथमिकता विशेषता, संख्या जितनी अधिक हो, उतनी अधिक प्राथमिकता, मूल्य सीमा: -1000 से 1000। यह भी है संभव इंटेंटफिल्टर ऑब्जेक्ट के सेटपैरिटी () को कॉल करें), और प्राप्तकर्ता बदले में प्रसारण प्राप्त करता है। उदाहरण के लिए, यदि A का स्तर B की तुलना में अधिक है, और B का स्तर C से अधिक है, तो प्रसारण को पहले A, फिर B तक, और अंत में C को A को प्रसारण मिलने के बाद प्रसारित किया जाता है, प्रसारण में डेटा स्टोर कर सकते हैं। जब प्रसारण B को भेजा जाता है, B प्रसारण से A द्वारा संग्रहीत डेटा प्राप्त कर सकता है।

     

    Context.sendBroadcast ()

       जो भेजा गया है वह एक साधारण प्रसारण है, और सभी ग्राहकों के पास इसे प्राप्त करने और संसाधित करने का अवसर है।

     

    संदर्भ

       भेजना एक व्यवस्थित प्रसारण है। सिस्टम रिसीवर द्वारा घोषित प्राथमिकता के अनुसार एक-एक करके रिसीवर को निष्पादित करेगा। पिछले रिसीवर के पास प्रसारण (BroadcastReceiver.abortBroadcast ()) को समाप्त करने का अधिकार है। यदि प्रसारण पिछले रिसीवर द्वारा समाप्त किया जाता है, तो बाद वाला रिसीवर अब प्रसारण प्राप्त नहीं कर सकता है। आदेशित प्रसारण के लिए, पिछले रिसीवर प्रसारण इरादे में प्रसंस्करण परिणाम को स्टोर कर सकता है, और फिर इसे अगले रिसीवर को पास कर सकता है।

     
    ब्रॉडकास्ट रिसीवर (BroadcastReceiver) का उपयोग प्रसारण आशय प्राप्त करने के लिए किया जाता है, और प्रसारण इंटेंट के भेजने को Context.sendBroadcast () और Context.sendOrderedBroadcast () कॉल करके महसूस किया जाता है। आमतौर पर एक प्रसारण इरादे कई प्रसारण प्राप्तकर्ताओं द्वारा प्राप्त किया जा सकता है इस इरादे के लिए सदस्यता ली। यह सुविधा जेएमएस में टॉपिक संदेश प्राप्तकर्ताओं के समान है। प्रसारण रिसीवर विधि लागू करने के लिए इस प्रकार है:

     

    पहला चरण: ब्रॉडकास्ट रिसीवर, इनहेरिट ब्रॉडकास्टसीवर को परिभाषित करें, और ऑनरिविव () विधि को फिर से लिखें।

    सार्वजनिक वर्ग
      @ ओवरराइड सार्वजनिक शून्य onReceive (संदर्भ, आशय) {
      }
    }

     

    चरण 2: प्रसारण की रुचि के लिए सदस्यता लें, सदस्यता के दो तरीके हैं:

    पहला प्रकार: सदस्यता के लिए कोड का उपयोग करें (डायनेमिक सदस्यता)

    इंटेंटफिल्टर फ़िल्टर = newIntentFilter ("android.provider.Telephony.SMS_RECEIVED");
    IncomingSMSReceiver रिसीवर = newIncomingSMSReceiver ();
    रजिस्टरराइवर (रिसीवर, फ़िल्टर);

     

    दूसरा प्रकार: में सदस्यता लें AndroidManifest.xml फ़ाइल में नोड (स्थिर सदस्यता)


      
           
      


    आइए गतिशील प्रसारण सदस्यता और स्थिर प्रसारण सदस्यता के बीच अंतर पर एक नज़र डालें:
    स्थैतिक सदस्यता प्रसारण भी कहा जाता है: निवासी प्रसारण। जब आपका आवेदन बंद हो जाता है, यदि कोई प्रसारण संदेश है, तो आपके द्वारा लिखा गया प्रसारण रिसीवर इसे भी प्राप्त कर सकता है। आपके आवेदन में इसकी पंजीकरण विधि AndroidManifast है। .xml सदस्यता के लिए

     

    डायनेमिक सब्सक्रिप्शन प्रसारण भी कहा जाता है: अनिवासी प्रसारण। जब अनुप्रयोग समाप्त होता है, तो प्रसारण स्वाभाविक रूप से गायब हो जाएगा। उदाहरण के लिए, आप गतिविधि में onCreate या onResume में प्रसारण की सदस्यता लेते हैं, और आपको onDestory या onPause में प्रसारण सदस्यता रद्द करनी होगी। अन्यथा, एक अपवाद की सूचना दी जाएगी, इसलिए आपका प्रसारण रिसीवर एक अनिवासी होगा।

     

    यहाँ एक और विस्तार है जो दो सदस्यता विधि है। प्रसारण भेजते समय, आपको ध्यान देने की आवश्यकता है: अंतर्निहित पंजीकरण पद्धति का उपयोग गतिशील पंजीकरण के लिए किया जाता है, इसलिए आपको प्रसारण भेजते समय भेजने के लिए अंतर्निहित इरादे का उपयोग करने की आवश्यकता होती है। , अन्यथा प्रसारण रिसीवर प्रसारण प्राप्त करने में सक्षम नहीं होगा। इस बिंदु पर ध्यान दें। लेकिन सांख्यिकीय रूप से सदस्यता लेते समय, क्योंकि यह AndroidMainfest.xml में सब्सक्राइब किया गया है, प्रसारण भेजते समय डिस्प्ले इंटेंट और निहित इरादे का उपयोग करना संभव है (बेशक यह केवल स्वयं द्वारा परिभाषित प्रसारण रिसीवर के लिए है), इसलिए केवल मामले में, हम आम तौर पर निहित का उपयोग करते हैं प्रसारण भेजने का इरादा।

     

    आइए एक उदाहरण देखें:

    परियोजना संरचना पर एक नज़र डालें:

     

    स्थैतिक सदस्यता प्रसारण पर एक नज़र डालें:
    पैकेज com.broadcast.demo;

    आयात android.app.Activity;
    आयात android.content.ntent;
    आयात android.os.Bundle;
    आयात android.view.View;
    आयात android.view.View.OnClickListener;
    आयात android.widget.Button;

    आयात com.example.androidbroadcastdemo.R;

    / **
     * स्थैतिक सदस्यता प्रसारित
     *@लेखक वेइजियांग204321
     *
     */
    सार्वजनिक वर्ग

    @ ऑवरराइड
    संरक्षित शून्य onCreate (बंडल बचाया
    super.onCreate (saveInstanceState);
    setContentView (R.layout.activity_main);
    बटन btn = (बटन) findViewById (R.id.btn);
    सेवा मेरे
    btn.setOnClickListener (नया OnClickListener () {
    @ ऑवरराइड
    सार्वजनिक शून्य पर क्लिक करें (देखें v) {
    // प्रसारण को पंजीकृत करने के लिए एक स्थिर तरीके का उपयोग करें, आप प्रसारण भेजने के लिए प्रदर्शन इरादे का उपयोग कर सकते हैं
    आशय प्रसारण = नया आशय ("com.broadcast.set.broadcast");
    sendBroadcast (प्रसारण, अशक्त);
    }
    सेवा मेरे
    });
    }
    सेवा मेरे
    }


    AndroidMainfest.xml में सदस्यता लें:



    <प्रकट xmlns:एंड्रॉयड=''
    http://schemas.android.com/apk/res/android"
        पैकेज = "com.example.androidbroadcastdemo"
        Android: versionCode = "1"
        Android: versionName = "1.0">

        <उपयोग-sdk
            Android: minSdkVersion = "8"
            Android: targetSdkVersion = "18" />
       
       
       
       
       
       

        <आवेदन
            Android: allowBackup = "सत्य"
            Android: icon = "@ drawable / ic_launcher"
            Android: लेबल = "@ स्ट्रिंग / app_name"
            Android: विषय = "@ शैली / तालियाँ">
            <गतिविधि
                Android: name = "com.broadcast.demo.StaticRegisterBroadcastActivity"
                Android: लेबल = "@ स्ट्रिंग / app_name">
               
                   
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
           
           
               
                   
               
           
           
           
           
           
               
                   
               
           
           
       

    अभी के लिए अन्य सामग्री के बारे में चिंता न करें, जैसा कि हम बाद में बात करेंगे, यहां हम केवल स्थैतिक प्रसारण के पंजीकरण पर ध्यान केंद्रित करते हैं


          
               
                   
               
           


    आइए प्रसारण के रिसीवर पर एक नज़र डालें:

    पैकेज com.broadcast.receiver;

    आयात android.content.BroadcastReceiver;
    आयात android.content.Context;
    आयात android.content.ntent;
    आयात android.util.Log;

    / **
     * प्रसारण रिसीवर
     *@लेखक वेइजियांग204321
     *
     */
    सार्वजनिक क्लास

    @ ऑवरराइड
    सार्वजनिक शून्य onReceive (संदर्भ, आशय अभिप्राय) {
    Log.e ("Intent_Action:", आशय ।getAction () + "");
    }

    }
    प्रसारण रिसीवर में onReceive पद्धति में तर्क बहुत सरल है, जो कि एक्शन की सामग्री को प्रिंट करना है।
    कार्यक्रम चलाएं, परिणाम बहुत सरल है, यहां चित्र नहीं है।

     

    आइए गतिशील सब्सक्रिप्शन पर एक नज़र डालें:


    पैकेज com.broadcast.demo;

    आयात android.app.Activity;
    आयात android.content.ntent;
    आयात android.content.IntentFilter;
    आयात android.os.Bundle;
    आयात android.view.View;
    आयात android.view.View.OnClickListener;
    आयात android.widget.Button;

    आयात com.broadcast.receiver.UnSortBroadcastReceiver;
    आयात com.example.androidbroadcastdemo.R;

    / **
     * प्रसारण रजिस्टर करने के लिए गतिशील तरीके का उपयोग करें
     *@लेखक वेइजियांग204321
     *
     */
    सार्वजनिक वर्ग डायनेमिक रीग्रिस्टरब्रॉडकैक्टिविटी फैक्ट्री {
    सेवा मेरे
    सार्वजनिक स्थिर अंतिम स्ट्रिंग NEW_LIFEFORM_DETECTED = "com.dxz.broadcasttest.NEW_LIFEFORM";
    संरक्षित UnSortBroadcastReceiver रिसीवर;
    सेवा मेरे
    @ ऑवरराइड
    संरक्षित शून्य onCreate (बंडल बचाया
    super.onCreate (saveInstanceState);
    setContentView (R.layout.activity_main);
    बटन btn0 = (बटन) findViewById (R.id.btn);
    btn0.setOnClickListener (नया OnClickListener () {
    सार्वजनिक शून्य पर क्लिक करें (देखें v) {
    // प्रसारण भेजें
    इरादे = नए इरादे (NEW_LIFEFORM_DETECTED);
    sendBroadcast (it);
    }
    });
    }

    @ ऑवरराइड
    संरक्षित शून्य पर () {
    super.onResume ();
    // प्रसारण के लिए पंजीकरण करें
    IntentFilter counterActionFilter = नया IntentFilter (NEW_LIFEFORM_DETECTED);
    रिसीवर = नया UnSortBroadcastReceiver ();
    रजिस्टरराइवर (रिसीवर, काउंटरएफ़िल्टर);
    }

    @ ऑवरराइड
    संरक्षित शून्य चालू () {
    super.onPause ();
    // प्रसारण को रद्द करें
    unregisterReceiver (रिसीवर);
    }
    }
    यहाँ हम onResume में प्रसारण की सदस्यता ले रहे हैं, और onPause में प्रसारण के लिए सदस्यता समाप्त कर रहे हैं।
    AndroidMainfest.xml में लॉन्च की गई गतिविधि को DynamicsRegisterBroadcastActivity में बदलें। अन्य सामग्री को संशोधित करने की आवश्यकता नहीं है। कार्यक्रम चलाएं और परिणाम प्रिंट करें बहुत सरल है, इसलिए मैं यहां चित्र नहीं देखूंगा।

     

    आइए एक नज़र डालते हैं ऑर्डर किए गए ब्रॉडकास्टिंग और अनऑर्डर्ड ब्रॉडकास्टिंग पर

    हमने शुरुआत में ही इसका उल्लेख किया है, आइए अव्यवस्थित प्रसारण पर एक नजर डालते हैं:

    पहले हम दो प्रसारण रिसीवर परिभाषित करते हैं:

    पहला प्रसारण रिसीवर:


    पैकेज com.broadcast.receiver;

    आयात android.content.BroadcastReceiver;
    आयात android.content.Context;
    आयात android.content.ntent;
    आयात android.util.Log;

    / **
     * प्रसारण रिसीवर ए
     *@लेखक वेइजियांग204321
     *
     */
    सार्वजनिक वर्ग SortBroadcastReceiverA ब्रॉडकास्टसीवर {

    @ ऑवरराइड
    सार्वजनिक शून्य onReceive (संदर्भ, आशय अभिप्राय) {
    लॉग.ई ("डेमो:", "ब्रॉडकास्ट रिसीवर ए");
    }

    }
    दूसरा प्रसारण रिसीवर:

    पैकेज com.broadcast.receiver;

    आयात android.content.BroadcastReceiver;
    आयात android.content.Context;
    आयात android.content.ntent;
    आयात android.util.Log;

    / **
     * प्रसारण रिसीवर बी
     *@लेखक वेइजियांग204321
     *
     */
    सार्वजनिक वर्ग SortBroadcastReceiverB प्रसारण प्रदान करता है

    @ ऑवरराइड
    सार्वजनिक शून्य onReceive (संदर्भ, आशय अभिप्राय) {
    लॉग.ई ("डेमो:", "ब्रॉडकास्ट बी");
    }

    सेवा मेरे
    सेवा मेरे
    }


    AndroidMainfest.xml में प्रसारण के लिए सदस्यता लें


     
               
                   
               

           

               
                   
               

    ऑपरेशन का परिणाम:


    दौड़ने का परिणाम थोड़ा अजीब है। रिसीवर बी सामने में क्यों है और पीठ में रिसीवर ए? कारण यह है कि जब हम AndroidMainfest.xml में प्रसारण की सदस्यता लेते हैं, तो हम इरादा-फ़िल्टर में Android: प्राथमिकता विशेषता मान सेट करते हैं। मूल्य जितना बड़ा होगा, प्राथमिकता उतनी ही अधिक होगी। , रिसीवर बी की प्राथमिकता 1000 है, रिसीवर ए की प्राथमिकता 999 है, इसलिए बी पहले प्रसारण प्राप्त करता है, और फिर ए इसे प्राप्त करता है, लेकिन रिसीवर बी और रिसीवर ए के बीच कोई संबंध नहीं है, और कोई बातचीत नहीं हो सकती है, हां, क्योंकि यह एक आउट-ऑफ-ऑर्डर प्रसारण और अतुल्यकालिक है, हम B में ऑनरसीवर विधि में कोड जोड़कर एक प्रयोग कर सकते हैं:

    abortBroadcast (); // इस प्रसारण के प्रसारण को समाप्त करें

    ऑपरेशन का परिणाम:

     

    हम शीघ्र त्रुटि देख सकते हैं, अर्थात्, गैर-आदेशित प्रसारण को प्रसारण को समाप्त करने की अनुमति नहीं है। वास्तव में, समाप्ति बेकार है, क्योंकि रिसीवर ए अभी भी प्रसारण प्राप्त करता है।

     

    आइए क्रमबद्ध प्रसारण पर एक नज़र डालें, कोड को संशोधित करने की आवश्यकता है:

    प्रसारण भेजते समय सबसे पहले:


    आशय प्रसारण = नया आशय ("com.broadcast.set.broadcast");
    sendOrderedBroadcast (प्रसारण, अशक्त);
    फिर बी रिसीवर में प्रसारण को समाप्त करने के लिए एक विधि जोड़ें:
    abortBroadcast ();

    अन्य कोड को संशोधित करने की आवश्यकता नहीं है, ऑपरेशन परिणाम:

     

    केवल रिसीवर बी है, रिसीवर ए को प्रसारण प्राप्त नहीं होता है, क्योंकि प्रसारण को रिसीवर बी में समाप्त किया जाता है, और बाद के रिसीवर इसे स्वीकार नहीं कर सकते।

    नीचे दिए गए कोड को संशोधित करें:

    प्राप्तकर्ता B:


    पैकेज com.broadcast.receiver;

    आयात android.content.BroadcastReceiver;
    आयात android.content.Context;
    आयात android.content.ntent;
    आयात android.os.Bundle;
    आयात android.util.Log;

    / **
     * प्रसारण रिसीवर बी
     *@लेखक वेइजियांग204321
     *
     */
    सार्वजनिक वर्ग SortBroadcastReceiverB प्रसारण प्रदान करता है

    @ ऑवरराइड
    सार्वजनिक शून्य onReceive (संदर्भ, आशय अभिप्राय) {
    लॉग.ई ("डेमो:", "ब्रॉडकास्ट रिसीवर बी");
    बंडल बंडल = नया बंडल ();
    bundle.putString ("next_receiver", "अगला प्रसारण रिसीवर");
    setResultExtras (बंडल);
    }
    सेवा मेरे
    }
    बी प्रसारण प्राप्त करने के बाद, यह कुछ मूल्य संग्रहीत करता है और इसे अगले रिसीवर को भेजता है।


    रिसीवर का कोड:


    पैकेज com.broadcast.receive

     

     

     

     

    सभी प्रश्न सूची

    उपनाम

    ईमेल

    प्रशन

    हमारे अन्य उत्पाद:

    व्यावसायिक एफएम रेडियो स्टेशन उपकरण पैकेज

     



     

    होटल आईपीटीवी समाधान

     


      सरप्राइज पाने के लिए ईमेल डालें

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> अफ्रीकी
      sq.fmuser.org -> अल्बानियाई
      ar.fmuser.org -> अरबी
      hy.fmuser.org -> अर्मेनियाई
      az.fmuser.org -> अजरबैजानी
      eu.fmuser.org -> बास्क
      be.fmuser.org -> बेलारूसी
      bg.fmuser.org -> बल्गेरियाई
      ca.fmuser.org -> कातालान
      zh-CN.fmuser.org -> चीनी (सरलीकृत)
      zh-TW.fmuser.org -> चीनी (पारंपरिक)
      hr.fmuser.org -> क्रोएशियाई
      cs.fmuser.org -> चेक
      da.fmuser.org -> डेनिश
      nl.fmuser.org -> डच
      et.fmuser.org -> एस्टोनियाई
      tl.fmuser.org -> फिलिपिनो
      fi.fmuser.org -> फिनिश
      fr.fmuser.org -> फ्रेंच
      gl.fmuser.org -> गैलिशियन्
      ka.fmuser.org -> जॉर्जियाई
      de.fmuser.org -> जर्मन
      el.fmuser.org -> यूनानी
      ht.fmuser.org -> हाईटियन क्रियोल
      iw.fmuser.org -> हिब्रू
      hi.fmuser.org -> हिन्दी
      hu.fmuser.org -> हंगेरी
      is.fmuser.org -> आइसलैंड का
      id.fmuser.org -> इन्डोनेशियाई
      ga.fmuser.org -> आयरिश
      it.fmuser.org -> इतालवी
      ja.fmuser.org -> जापानी
      ko.fmuser.org -> कोरियाई
      lv.fmuser.org -> लातवियाई
      lt.fmuser.org -> लिथुआनियाई
      mk.fmuser.org -> मकदूनियाई
      ms.fmuser.org -> मलय
      mt.fmuser.org -> माल्टीज
      no.fmuser.org -> नार्वेजियन
      fa.fmuser.org -> फारसी
      pl.fmuser.org -> पॉलिश
      pt.fmuser.org -> पुर्तगाली
      ro.fmuser.org -> रोमानियाई
      ru.fmuser.org -> रूसी
      sr.fmuser.org -> सर्बियाई
      sk.fmuser.org -> स्लोवाक
      sl.fmuser.org -> स्लोवेनियाई
      es.fmuser.org -> स्पेनिश
      sw.fmuser.org -> स्वाहिली
      sv.fmuser.org -> स्वीडिश
      th.fmuser.org -> थाई
      tr.fmuser.org -> तुर्की
      uk.fmuser.org -> यूक्रेनी
      ur.fmuser.org -> उर्दू
      vi.fmuser.org -> वियतनामी
      cy.fmuser.org -> वेल्श
      yi.fmuser.org -> येहुदी

       
  •  

    FMUSER वायुहीन प्रसारण वीडियो और ऑडियो अधिक आसान!

  • Contact

    पता:
    No.305 कक्ष हुआलन भवन नं .273 हुआनपु रोड गुआंगझाऊ चीन 510620

    ईमेल:
    [ईमेल संरक्षित]

    टेल / व्हाट्सएप:
    +8618078869184

  • श्रेणियाँ

  • न्यूज़लैटर

    पहला या पूरा नाम

    ईमेल

  • पेपैल समाधान  वेस्टर्न यूनियनचीन का बैंक
    ईमेल:[ईमेल संरक्षित]   WhatsApp: +8618078869184 स्काइपे: Sky198710021 मुझसे बात करो
    कॉपीराइट 2006-2020 द्वारा संचालित www.fmuser.org

    संपर्क करें