Android प्लेटफ़ॉर्म में सूचनाएं पुश करें


266

मैं एक ऐप लिखना चाह रहा हूं जो सर्वर से पुश अलर्ट प्राप्त करता है। मुझे ऐसा करने के लिए कुछ तरीके मिले।

  1. एसएमएस - आने वाले एसएमएस को रोकें और सर्वर से एक पुल शुरू करें
  2. समय-समय पर सर्वर को पोल करें

प्रत्येक की अपनी सीमाएँ हैं। एसएमएस- आगमन समय पर कोई गारंटी नहीं। पोल से बैटरी निकल सकती है।

क्या आपके पास एक बेहतर सुझाव है? बहुत बहुत धन्यवाद।


4
आप पुश अधिसूचना डेवलपर के
।android.com

मुझे लगता है कि आप इस पोस्ट को देख सकते हैं: stackoverflow.com/questions/17629942/… वर्कलाइट के साथ आप GCM सहित विभिन्न चैनलों के माध्यम से पुश प्राप्त कर सकते हैं।
नीरज कृष्णा

1
Google I / O 2010 की प्रस्तुति youtube.com/watch?v=PLM4LajwDVc
elcuco

"पोल से बैटरी निकल सकती है।" आप अलार्म मैनजर के साथ पोल शेड कर सकते हैं, इसलिए बैटरी भारी नहीं है। यह सरल और मुफ्त है (भुगतान करने की आवश्यकता नहीं है, जैसे जीसीएम के साथ) समाधान।
डिप्सकॉर्न

एक ही मुद्दा है stackoverflow.com/questions/35812304/…
अल्बर्ट

जवाबों:


203

Google का आधिकारिक उत्तर एंड्रॉइड क्लाउड टू डिवाइस मैसेजिंग फ्रेमवर्क (पदावनत) Google क्लाउड मैसेजिंग (पदावनत) फायरबेस क्लाउड मैसेजिंग है

यह एंड्रॉइड> = 2.2 (प्ले स्टोर पर मौजूद फोन पर) पर काम करेगा।


यह अभी बीटा में है, लेकिन आप सक्रिय होने की उम्मीद में साइन अप कर सकते हैं।
बीट

3
आप आम तौर पर बहुत जल्दी सक्रिय हो सकते हैं, और इसका उपयोग जीमेल जैसी चीजों के लिए किया जा रहा है ताकि उत्पादन में काम करना पता चल सके। दुर्भाग्य से C2DM के सर्वर पक्ष पहलू के साथ संवाद करने के लिए उनके नमूना कोड की कमी है। मैंने उस पहलू के लिए एक ट्यूटोरियल लिखा है यहाँ blog.boxedice.com/2010/10/07/…
DavidM

6
समस्या यह है कि आपको अपने उपयोगकर्ताओं के लिए एक Google खाते की आवश्यकता है: जो है, मुझे लगता है, एक बाधा।
कैफिन

33
ध्यान दें कि Android क्लाउड टू डिवाइस मैसेजिंग फ्रेमवर्क को हटा दिया गया है। नए ढांचे को Google क्लाउड मैसेजिंग कहा जाता है और यहां पाया जा सकता है: developer.android.com/guide/google/gcm/index.html
Ryan Berger

10 अप्रैल, 2018 को, Google ने GCM को हटा दिया। GCM सर्वर और क्लाइंट API को 29 मई, 2019 को हटा दिया गया। Firebase Cloud Messaging (FCM) के लिए GCM ऐप्स को माइग्रेट करें, जो विश्वसनीय और स्केलेबल GCM इन्फ्रास्ट्रक्चर, और कई नई सुविधाओं को विरासत में मिला। अधिक जानने के लिए माइग्रेशन मार्गदर्शिका देखें।
पेइगो

29

( एक उत्तर से क्रॉस-पोस्टिंग मैंने एक समान प्रश्न के लिए दिया - क्या एंड्रॉइड वास्तविक समय पुश अधिसूचना के पास समर्थन करता है? )

मैंने हाल ही में MQTT http://mqtt.org के साथ खेलना शुरू किया एंड्रॉइड के लिए इस तरह की चीज़ करने का एक तरीका है (यानी पुश नोटिफ़िकेशन जो एसएमएस नहीं है लेकिन डेटा संचालित है, लगभग तत्काल संदेश डिलीवरी, मतदान नहीं, आदि)

मेरे पास इस बारे में पृष्ठभूमि की जानकारी के साथ एक ब्लॉग पोस्ट है यदि यह उपयोगी है

http://dalelane.co.uk/blog/?p=938

(नोट: MQTT एक आईबीएम तकनीक है, और मुझे यह बताना चाहिए कि मैं आईबीएम के लिए काम करता हूं।)


हाय डेल, मैंने आपके ब्लॉग पोस्ट को MQTT के बारे में पढ़ा और यह निश्चित रूप से मोबाइल पर तुरंत सूचना के लिए बिल को फिट करने के लिए लगता है। लेकिन मैं वास्तव में इसे कैसे करता है, इसके बारे में कोई जानकारी नहीं पा सका हूँ। क्या यह हर समय एक सॉकेट खुला रखता है? यदि इसका आईपी पता बदल गया है तो यह सर्वर को कैसे सूचित करेगा? अगर आप इस पर कुछ प्रकाश डाल सकते हैं तो इसकी सराहना करेंगे। चीयर्स नरेन
नरेन

2
यह एक कनेक्शन खुला रखता है। एक अनुवर्ती पोस्ट ( dalelane.co.uk/blog/?p=1009 ) में मैंने कनेक्शन खुला रखने के निहितार्थ के बारे में अधिक बात की - क्या आपने देखा है? यदि कनेक्शन टूट गया है, तो सर्वर और क्लाइंट दोनों को सूचित किया जा सकता है। फिर यह तय करने के लिए एक आवेदन परत निर्णय है कि कैसे प्रतिक्रिया दें (जैसे पुन: कनेक्ट करें)। पोस्ट में संदर्भित डॉक्स में अधिक जानकारी है (उदाहरण के लिए IA92: www-01.ibm.com/support/docview.wss?rs=171&uid=swg24006006 उस पेज पर pdf, और उस पेज पर ज़िप में Javadoc)
dalelane

18

Android पुश अधिसूचना के साथ मेरी समझ / अनुभव हैं:

  1. C2DM GCM - यदि आपका लक्ष्य Android प्लेटफॉर्म 2.2+ है, तो इसके लिए जाएं। बस एक पकड़, डिवाइस उपयोगकर्ताओं को हमेशा होना चाहिएसंदेशों को पाने के लिए Google खाते के साथ लॉग इन करना होगा

  2. MQTT - पब / उप-आधारित दृष्टिकोण, डिवाइस से एक सक्रिय कनेक्शन की आवश्यकता होती है, अगर समझदारी से लागू नहीं किया गया है तो बैटरी को सूखा सकता है।

  3. डेकन - सीमित सामुदायिक समर्थन के कारण लंबे समय में अच्छा नहीं हो सकता है।

संपादित करें : 25 नवंबर 2013 को जोड़ा गया

GCM - Google कहता है ...

पूर्व 3.0 उपकरणों के लिए, इसके लिए उपयोगकर्ताओं को अपने मोबाइल उपकरणों पर अपना Google खाता सेट करना होगा। एंड्रॉइड 4.0.4 या उच्चतर चलाने वाले उपकरणों पर Google खाते की आवश्यकता नहीं है। *


जबकि 4.0.4 या इससे अधिक के लिए Google खाते की आवश्यकता नहीं है, लेकिन इसके लिए आपको Google Play एप्लिकेशन इंस्टॉल करना आवश्यक है। मुझे आश्चर्य है कि आप Google खाता के बिना इसे कैसे स्थापित करते हैं।
Jan

1
@ जान: Google play app डिवाइस के साथ इंस्टॉल आता है। उपयोगकर्ता को स्थापित करने की आवश्यकता नहीं है।
डेक्सर

@Dexter, सभी Android उपकरणों में Google Play डिफ़ॉल्ट रूप से इंस्टॉल नहीं होता है। अधिकांश ने इसे डिफ़ॉल्ट रूप से स्थापित किया है, विशेष रूप से ऐसे उपकरण जो प्रतिष्ठित फोन विक्रेताओं से खरीदे जाते हैं, लेकिन जिन उपकरणों में एंड्रॉइड ओएस फ्लैश होता है, उनमें हमेशा Google Play नहीं हो सकता है। (उदाहरण के लिए, बहुत सारे एंड्रॉइड एमुलेटर, जैसे कि नई जीनोमिशन डिवाइस, डिफ़ॉल्ट रूप से Google Play नहीं है।)
स्पेंसर डी

तो ... क्या MQTT Android उपकरणों के लिए सबसे अच्छा विकल्प है जिसमें Google Play स्थापित नहीं है?
यंग

17

एंड्रॉइड क्लाउड टू डिवाइस मैसेजिंग फ्रेमवर्क

महत्वपूर्ण: 26 जून 2012 तक C2DM को आधिकारिक तौर पर हटा दिया गया है। इसका मतलब है कि C2DM ने नए उपयोगकर्ताओं और कोटा अनुरोधों को स्वीकार करना बंद कर दिया है। C2DM में कोई नई सुविधाएँ नहीं जोड़ी जाएंगी। हालाँकि, C2DM का उपयोग करने वाले ऐप्स काम करना जारी रखेंगे। मौजूदा C2DM डेवलपर्स को C2DM के नए संस्करण में माइग्रेट करने के लिए प्रोत्साहित किया जाता है, जिसे Google क्लाउड मैसेजिंग फॉर एंड्रॉइड (GCM) कहा जाता है। अधिक जानकारी के लिए C2DM-to-GCM माइग्रेशन दस्तावेज़ देखें। नए विकास के लिए डेवलपर्स को GCM का उपयोग करना चाहिए।

कृपया निम्नलिखित लिंक देखें:

http://developer.android.com/guide/google/gcm/index.html


17

यहाँ मैंने स्क्रैच से शुरू करने के लिए कैसे करें और सूचना प्राप्त करने के लिए कुछ कदम लिखे हैं

  1. Google क्लाउड पर ऐप बनाएं / रजिस्टर करें
  2. विकास के साथ सेटअप क्लाउड एसडीके
  3. GCM के लिए प्रोजेक्ट कॉन्फ़िगर करें
  4. डिवाइस पंजीकरण आईडी प्राप्त करें
  5. पुश सूचनाएं भेजें
  6. पुश सूचनाएं प्राप्त करें

आप नीचे दिए गए URL लिंक में पूर्ण ट्यूटोरियल पा सकते हैं

एंड्रॉइड पुश नोटिफिकेशन के साथ शुरुआत करना: नवीनतम Google क्लाउड मैसेजिंग (GCM) - स्टेप बाय स्टेप पूरा ट्यूटोरियल

यहां छवि विवरण दर्ज करें

पंजीकरण आईडी प्राप्त करने के लिए कोड स्निप (पुश अधिसूचना के लिए डिवाइस टोकन)।

GCM के लिए प्रोजेक्ट कॉन्फ़िगर करें


AndroidManifest फ़ाइल अपडेट करें

हमारी परियोजना में GCM को सक्षम करने के लिए हमें अपनी मैनिफ़ेस्ट फ़ाइल में कुछ अनुमति जोड़ने की आवश्यकता है। AndroidManifest.xml पर जाएं और नीचे दिए गए कोड जोड़ें

<uses-permission android:name="android.permission.INTERNET”/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.VIBRATE" />

<uses-permission android:name=“.permission.RECEIVE" />
<uses-permission android:name=“<your_package_name_here>.permission.C2D_MESSAGE" />
<permission android:name=“<your_package_name_here>.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

GCM प्रसारण रिसीवर घोषणा जोड़ें

अपने आवेदन टैग में GCM ब्रॉडकास्ट रिसीवर घोषणा जोड़ें

<application
        <receiver
            android:name=".GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" ]]>
            <intent-filter]]>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <category android:name="" />
            </intent-filter]]>

        </receiver]]>
     
<application/>

GCM Servie घोषणा जोड़ें

<application
     <service android:name=".GcmIntentService" />
<application/>

पंजीकरण आईडी प्राप्त करें (पुश सूचना के लिए डिवाइस टोकन)

अब अपने लॉन्च / स्प्लैश गतिविधि पर जाएं

स्थिरांक और वर्ग चर जोड़ें

private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
public static final String EXTRA_MESSAGE = "message";
public static final String PROPERTY_REG_ID = "registration_id";
private static final String PROPERTY_APP_VERSION = "appVersion";
private final static String TAG = "LaunchActivity";
protected String SENDER_ID = "Your_sender_id";
private GoogleCloudMessaging gcm =null;
private String regid = null;
private Context context= null;

अद्यतन OnCreate और OnResume विधियाँ

@Override
protected void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_launch);
     context = getApplicationContext();
         if (checkPlayServices()) 
     {
            gcm = GoogleCloudMessaging.getInstance(this);
            regid = getRegistrationId(context);

            if (regid.isEmpty())
            {
                registerInBackground();
            }
            else
            {
            Log.d(TAG, "No valid Google Play Services APK found.");
            }
      }
 }

@Override protected void onResume()
{
       super.onResume();       checkPlayServices();
}


# Implement GCM Required methods (Add below methods in LaunchActivity)

private boolean checkPlayServices() {
        int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
        if (resultCode != ConnectionResult.SUCCESS) {
            if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
                GooglePlayServicesUtil.getErrorDialog(resultCode, this,
                        PLAY_SERVICES_RESOLUTION_REQUEST).show();
            } else {
                Log.d(TAG, "This device is not supported - Google Play Services.");
                finish();
            }
            return false;
        }
        return true;
 }

private String getRegistrationId(Context context) 
{
   final SharedPreferences prefs = getGCMPreferences(context);
   String registrationId = prefs.getString(PROPERTY_REG_ID, "");
   if (registrationId.isEmpty()) {
       Log.d(TAG, "Registration ID not found.");
       return "";
   }
   int registeredVersion = prefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE);
   int currentVersion = getAppVersion(context);
   if (registeredVersion != currentVersion) {
        Log.d(TAG, "App version changed.");
        return "";
    }
    return registrationId;
}

private SharedPreferences getGCMPreferences(Context context) 
{
    return getSharedPreferences(LaunchActivity.class.getSimpleName(),
                Context.MODE_PRIVATE);
}

private static int getAppVersion(Context context) 
{
     try 
     {
         PackageInfo packageInfo = context.getPackageManager()
                    .getPackageInfo(context.getPackageName(), 0);
            return packageInfo.versionCode;
      } 
      catch (NameNotFoundException e) 
      {
            throw new RuntimeException("Could not get package name: " + e);
      }
}


private void registerInBackground() 
{     new AsyncTask() {
     Override
     protected Object doInBackground(Object... params) 
     {
          String msg = "";
          try 
          {
               if (gcm == null) 
               {
                        gcm = GoogleCloudMessaging.getInstance(context);
               }
               regid = gcm.register(SENDER_ID);               Log.d(TAG, "########################################");
               Log.d(TAG, "Current Device's Registration ID is: "+msg);     
          } 
          catch (IOException ex) 
          {
              msg = "Error :" + ex.getMessage();
          }
          return null;
     }     protected void onPostExecute(Object result) 
     { //to do here };
  }.execute(null, null, null);
}

ध्यान दें : कृपया REGISTRATION_KEY को स्टोर करें, पीएन मैसेज को GCM को भेजना महत्वपूर्ण है, यह भी ध्यान रखें कि यह सभी डिवाइस के लिए अनूठा होगा, इसके लिए केवल GCM पुश नोटिफिकेशन भेजेगा।

पुश सूचनाएं प्राप्त करें

GCM प्रसारण रिसीवर वर्ग जोड़ें

जैसा कि हमने पहले ही अपनी मैनिफेस्ट फ़ाइल में "GcmBroadcastReceiver.java" घोषित कर दिया है, तो इस तरह से इस क्लास अपडेट रिसीवर क्लास कोड बनाने की सुविधा देता है।

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) 
    {        ComponentName comp = new ComponentName(context.getPackageName(),
                GcmIntentService.class.getName());        startWakefulService(context, (intent.setComponent(comp)));
        setResultCode(Activity.RESULT_OK);
        Toast.makeText(context, wow!! received new push notification", Toast.LENGTH_LONG).show();
    }
}

जीसीएम सेवा वर्ग जोड़ें

जैसा कि हमने पहले ही अपनी मैनिफेस्ट फ़ाइल में "GcmBroadcastReceiver.java" घोषित कर दिया है, तो इस तरह से इस क्लास अपडेट रिसीवर क्लास कोड बनाने की सुविधा देता है।

public class GcmIntentService extends IntentService
{     public static final int NOTIFICATION_ID = 1;     private NotificationManager mNotificationManager;     private final static String TAG = "GcmIntentService";     public GcmIntentService() {
     super("GcmIntentService");     
     }     @Override
     protected void onHandleIntent(Intent intent) {
          Bundle extras = intent.getExtras();
          Log.d(TAG, "Notification Data Json :" + extras.getString("message"));

          GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
          String messageType = gcm.getMessageType(intent);          if (!extras.isEmpty()) {          if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR
               .equals(messageType)) {
               sendNotification("Send error: " + extras.toString());
          } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED
          .equals(messageType)) {
          sendNotification("Deleted messages on server: "
          + extras.toString());          // If it's a regular GCM message, do some work.
          } else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE
          .equals(messageType)) {
          // This loop represents the service doing some work.
          for (int i = 0; i < 5; i++) {
               Log.d(TAG," Working... " + (i + 1) + "/5 @ "
               + SystemClock.elapsedRealtime());               try {
                    Thread.sleep(5000);
               } catch (InterruptedException e) {
               }
             }
             Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime());
             sendNotification(extras.getString("message"));
           }
        }        // Release the wake lock provided by the WakefulBroadcastReceiver.
        GcmBroadcastReceiver.completeWakefulIntent(intent);
     }     // Put the message into a notification and post it.
     // This is just one simple example of what you might choose to do with
     // a GCM message.
     private void sendNotification(String msg) {          mNotificationManager = (NotificationManager) this
          .getSystemService(Context.NOTIFICATION_SERVICE);
          PendingIntent contentIntent = PendingIntent.getActivity(this, 0,          new Intent(this, LaunchActivity.class), 0);

          NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(          this)
          .setSmallIcon(R.drawable.icon)
          .setContentTitle("Ocutag Snap")
          .setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
          .setContentText(msg)
          .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);

          mBuilder.setContentIntent(contentIntent);          mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
     }
}

@Rohit क्या आपने पूर्ण ट्यूटोरियल वाले लिंक की जाँच की है । कृपया मुझे यह बताएं कि मुझे क्या याद आ रहा है मैं उत्तर को अपडेट करूंगा।
स्विफ्टबॉय

11

Meteor वेब सर्वर के आधार पर Android पर पुश सूचनाओं के लिए जावा लाइब्रेरी विकसित करने के लिए एक नया ओपन-सोर्स प्रयास है। आप इसे Deacon प्रोजेक्ट ब्लॉग पर देख सकते हैं , जहां आपको Meteor और प्रोजेक्ट के GitHub रिपॉजिटरी के लिंक मिलेंगे। हमें डेवलपर्स की आवश्यकता है, इसलिए कृपया इस शब्द का प्रसार करें!


9

आप Xtify ( http://developer.xtify.com ) का उपयोग कर सकते हैं - उनके पास एक धक्का सूचनाएँ वेब सेवा है जो उनके एसडीके के साथ काम करती है। यह मुफ़्त है और अब तक, यह मेरे लिए वास्तव में अच्छी तरह से काम किया है।


3
मुझे उनके वीपी से यह कहते हुए प्रतिक्रिया मिली कि पुश सेवा के लिए कभी चार्ज करने की कोई योजना नहीं है। यह काफी आश्चर्यजनक एसडीके है।
क्रोवे टी। रोबोट

8

या ....

3) सर्वर से एक कनेक्शन रखें, हर कुछ मिनट पर की-अलाइव भेजें और सर्वर संदेशों को तुरंत धक्का दे सकता है। यह जीमेल, गूगल टॉक आदि काम करता है।


5
मुझे लगता है कि यह, दुख की बात है, बैटरी नाली की भारी मात्रा का उत्पादन होगा। यदि आप यह मार्ग अपनाते हैं, तो सुनिश्चित करें कि आप ऐसा करने की मात्रा को सीमित करें।
हैसमैन

नहीं, वास्तव में, यह नहीं होगा, क्योंकि निष्क्रिय टीसीपी / आईपी कनेक्शन सेल मॉडेम पर लगभग कोई शक्ति नहीं लेते हैं।
इसहाक वालर

वास्तव में, यह समय के साथ बहुत कुछ लेगा, इसलिए आप सही हैं। लंबे अंतराल के साथ रखने-रखने से भी बहुत मदद मिलती है।
इसहाक वालर

इस संबंध में "लंबे अंतराल" क्या हैं? मुझे पता है कि जीमेल पुश इस तरह काम करता है लेकिन मुझे नहीं पता कि वे किस समय अंतराल का उपयोग करते हैं।
tobsen

मैं बैटरी प्रदर्शन पुल पुश बनाम के बारे में यह चित्र मिला: labs.ericsson.com/files/battery.jpg मैं यहाँ एरिक्सन पुश एपीआई से ले लिया: labs.ericsson.com/apis/mobile-java-push/documentation
Menda

6

मैं Android के लिए GCM - Google क्लाउड मैसेजिंग का उपयोग करने की सलाह देता हूं , यह मुफ़्त है, और सरल उपयोगों के लिए यह बहुत आसान होना चाहिए।

हालाँकि इसे आपकी ओर से सूचनाएँ भेजने के लिए एक 3 जी सर्वर को बनाए रखने की आवश्यकता है। यदि आप बचना चाहते हैं कि Android पुश सूचना सेवा के लिए कुछ बहुत अच्छे औद्योगिक समाधान हैं:

  • शहरी एयरशिप - प्रति माह 1M सूचनाओं के लिए निःशुल्क, बाद में आपसे प्रति 1000 सूचनाएँ ली जाती हैं
  • PushApps - प्रति माह 1M सूचनाओं के लिए निःशुल्क, और 19.99 प्रति माह असीमित सूचनाएं
  • पुशवॉश - 1 एम उपकरणों के लिए मुफ्त, प्रीमियम प्लान 39 यूरो से हैं

डिस्क्लेमर - मैं पुशएप्स में काम करता हूं और अब एक साल से अधिक समय से अपने अनुप्रयोगों में उनके उत्पाद का उपयोग करता हूं।



4

मुझे डर है कि तुम दोनों संभव तरीके मिल गए हैं। Google, कम से कम शुरू में, एक GChatt एपीआई को लागू करने जा रहा था जिसे आप एक पुश / पुल कार्यान्वयन के लिए उपयोग कर सकते थे। अफसोस की बात है कि उस पुस्तकालय को एंड्रॉइड 1.0 द्वारा काट दिया गया था।


1
एक बार सुरक्षा समस्याओं से निपटने के बाद उन्होंने इसे वापस लाने का वादा किया है ... अगर ऐसा होता है।
जेरेमी लोगान

3

मुझे नहीं पता कि यह अभी भी उपयोगी है। मैं एक जावा पुस्तकालय के साथ इस तरह से कुछ हासिल किया http://www.pushlets.com/

Althoug एक सेवा में कर रहा है यह श्रोता धागे को मारने से एंड्रॉइड को बंद करने से नहीं रोकेगा।



2

C2DM: आपके ऐप-उपयोगकर्ताओं के पास gmail खाता होना चाहिए।

MQTT: जब आपका कनेक्शन 1024 तक पहुंच गया, तो यह लिनक्स के "चुनिंदा मॉडल" का उपयोग करने के कारण काम करना बंद कर देगा।

एंड्रॉइड के लिए एक मुफ्त पुश सेवा और एपीआई है, आप इसे आज़मा सकते हैं: http://push-notification.org


2

नि: शुल्क और आसान विधि:

यदि आपका लक्षित उपयोगकर्ता आधार बड़ा नहीं है (1000 से कम) और आप इसके साथ शुरू करने के लिए एक मुफ्त सेवा चाहते हैं, तो एयरबॉप सबसे अच्छा और सबसे सुविधाजनक है।

Airbop Website यह अपने एपीआई के माध्यम से Google क्लाउड मैसेजिंग सेवा का उपयोग करता है और एक अच्छा प्रदर्शन प्रदान करता है। मैंने इसे अपनी दो परियोजनाओं के लिए इस्तेमाल किया है और इसे लागू करना आसान था।

और Urbanship जैसी सेवाएँ उत्कृष्ट हैं, लेकिन एक संपूर्ण परिनियोजन स्टैक प्रदान करती हैं और न केवल पुश सूचनाएँ।

यदि केवल पुश सेवा ही आपका लक्ष्य है, तो Airbop ठीक काम करेगा।

मैंने Pushwoosh का उपयोग नहीं किया है , लेकिन यह भी एक बढ़िया विकल्प है। यह मुफ्त में 1,000,000 उपकरणों को पुश करने की अनुमति देता है


1

मैं दोनों एसएमएस और HTTP का उपयोग करने का सुझाव दूंगा। यदि उपयोगकर्ता को अपने फोन पर एसएमएस भेजने के लिए सूचित नहीं किया जाता है तो उन्हें सूचित करने के लिए एक संदेश की प्रतीक्षा है।

यह कैसे एरिक्सन लैब्स सेवा काम करता है: https://labs.ericsson.com/apis/mobile-java-push/

यदि आप इसे स्वयं कार्यान्वित करते हैं तो मुश्किल हिस्सा आने वाले एसएमएस को उपयोगकर्ता को देखे बिना हटा रहा है। या शायद यह ठीक है अगर वे इसे आपके मामले में देखते हैं।

इस तरह दिखता है काम: ब्रॉडकास्टरेसीवर का उपयोग करके एसएमएस हटाना - एंड्रॉइड

हां, इस तरह का कोड लिखना खतरनाक हो सकता है और आप संभावित रूप से किसी का जीवन बर्बाद कर सकते हैं क्योंकि आपके आवेदन में ऐसा कोई एसएमएस नहीं होना चाहिए।


1
योग्य: "हां, इस तरह का कोड लिखना खतरनाक हो सकता है और आप संभावित रूप से किसी के जीवन को बर्बाद कर सकते हैं क्योंकि आपके आवेदन में एक एसएमएस है जो उसके पास है।" उस के लिए upvote। जबरदस्त हंसी।
कुमार रवि

मोबाइल जावा पुश का लिंक मृत हो गया है, और यह सेवा अपने आप ही खाली होने लगती है।
naXa

1

आप Google क्लाउड मैसेजिंग या GCM का उपयोग कर सकते हैं , यह मुफ़्त और उपयोग में आसान है। इसके अलावा आप PushWoosh जैसे थर्ड पार्टी पुश सर्वर का उपयोग कर सकते हैं जो आपको अधिक लचीलापन देता है



1

फायरबेस क्लाउड मैसेजिंग (FCM) GCM का नया संस्करण है। एफसीएम एक क्रॉस-प्लेटफ़ॉर्म मैसेजिंग समाधान है जो आपको सुरक्षित और मुफ्त में संदेश भेजने की अनुमति देता है। एंड्रॉइड, आईओएस, वेब (जावास्क्रिप्ट), यूनिटी और सी ++ पर विश्वसनीय तरीके से संदेश देने के लिए जीसीएम का केंद्रीय बुनियादी ढांचा तैयार करता है।

10 अप्रैल, 2018 तक, Google ने GCM को अस्वीकृत कर दिया है। GCM सर्वर और क्लाइंट API को हटा दिया जाता है और 11 अप्रैल, 2019 को हटा दिया जाएगा। Google ने GCM अनुप्रयोगों को फायरबेस क्लाउड मैसेजिंग (FCM) में माइग्रेट करने की सिफारिश की है, जो विश्वसनीय और स्केलेबल GCM इन्फ्रास्ट्रक्चर को विरासत में मिला है।

संसाधन


0

आप Pusher का उपयोग कर सकते हैं

यह एक होस्ट की गई सेवा है जो वेब और मोबाइल एप्लिकेशन में रीयल-टाइम डेटा और कार्यक्षमता को जोड़ना आसान बनाता है।
पुशर पुस्तकालयों को सभी मुख्य रनटाइम्स और फ्रेमवर्क में एकीकृत करने की पेशकश करता है।

PHP, Ruby, Python, Java, .NET, Go and Node
JavaScript, Objective-C (iOS) and Java (Android)क्लाइंट पर सर्वर पर।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.