অ্যান্ড্রয়েড প্ল্যাটফর্মে বিজ্ঞপ্তি পুশ করুন


266

আমি একটি অ্যাপ্লিকেশন লিখতে চাই যা একটি সার্ভার থেকে ধাক্কা সতর্কতা গ্রহণ করে। এটি করার জন্য আমি বেশ কয়েকটি পদ্ধতি পেয়েছি।

  1. এসএমএস - আগত এসএমএসটি আটকান এবং সার্ভার থেকে একটি টান শুরু করুন
  2. পর্যায়ক্রমে সার্ভারটি পোল করুন

প্রত্যেকের নিজস্ব সীমাবদ্ধতা রয়েছে। এসএমএস- আগমনের সময় কোনও গ্যারান্টি নেই। পোল ব্যাটারি নিষ্কাশন করতে পারে।

আপনি কি আরও ভাল পরামর্শ আছে দয়া করে? অনেক ধন্যবাদ.


4
আপনি পুশ নোটিফিকেশন বিকাশকারী
roidঅ্যান্ড্রয়েড

আমার মনে হয় আপনি এই পোস্টে তাকান করতে পারেন: stackoverflow.com/questions/17629942/... Worklight আপনি জিসিএম সহ বিভিন্ন চ্যানেলের মাধ্যমে ধাক্কা গ্রহণ করতে পারেন।
নীরজ কৃষ্ণ

1
গুগল আই / ও ২০১০ উপস্থাপনাটি youtube.com/watch?v=PLM4LajwDVc
elcuco

"পোল ব্যাটারি নিকাশ করতে পারে।" আপনি অ্যালার্ম ম্যানেজারের মাধ্যমে পোল চালিয়ে যেতে পারেন, যাতে ব্যাটারি ভারী-ড্রেন হয় না। এটি সহজ এবং বিনামূল্যে (জিসিএম এর মতো অর্থ প্রদানের প্রয়োজন নেই) সমাধান।
ডিপস্কর্ন

উত্তর:


203

গুগলের অফিসিয়াল উত্তর হ'ল অ্যান্ড্রয়েড ক্লাউড থেকে ডিভাইস মেসেজিং ফ্রেমওয়ার্ক (হ্রাস করা) গুগল ক্লাউড মেসেজিং (হ্রাস করা) ফায়ারবেস ক্লাউড মেসেজিং

এটি অ্যান্ড্রয়েড> = ২.২ (প্লে স্টোর রয়েছে এমন ফোনে) এ কাজ করবে।


এটি এখনই বিটাতে রয়েছে তবে আপনি সক্রিয় হওয়ার আশায় সাইন আপ করতে পারেন।
ব্র্যাক

3
আপনি সাধারণত খুব দ্রুত সক্রিয় হয়ে যেতে পারেন, এবং এটি GMail এর মতো জিনিসের জন্য ব্যবহৃত হচ্ছে তাই প্রযোজনায় কাজ করা জানেন। দুর্ভাগ্যক্রমে C2DM এর সার্ভার সাইড দিকের সাথে যোগাযোগের জন্য তাদের নমুনা কোডটির অভাব রয়েছে। আমি এখানে সেই দিকটির জন্য একটি টিউটোরিয়াল লিখেছি Blog.boxedice.com/2010/10/07/…
ডেভিডএম

6
সমস্যাটি হ'ল আপনার ব্যবহারকারীদের জন্য আপনার একটি গুগল অ্যাকাউন্ট দরকার: এটি আমার মনে হয় একটি সীমাবদ্ধ।
কাফিন

33
নোট করুন যে অ্যান্ড্রয়েড ক্লাউড থেকে ডিভাইস মেসেজিং ফ্রেমওয়ার্ক অবচয় করা হয়েছে। নতুন কাঠামোটিকে গুগল ক্লাউড মেসেজিং বলা হয় এবং এটি এখানে পাওয়া যাবে: developer.android.com/guide/google/gcm/index.html
রায়ান বার্গার

10 এপ্রিল, 2018 এ, গুগল জিসিএমকে অবমূল্যায়ন করেছে। জিসিএম সার্ভার এবং ক্লায়েন্ট এপিআইগুলি 29 ই মে, 2019 এ সরিয়ে ফেলা হয়েছে। ফায়ারবেস ক্লাউড মেসেজিং (এফসিএম) এ জিসিএম অ্যাপ্লিকেশনগুলি স্থানান্তর করুন, যা নির্ভরযোগ্য এবং স্কেলযোগ্য জিসিএম অবকাঠামোগত উত্তরাধিকার সূত্রে প্রাপ্ত আরও অনেকগুলি নতুন বৈশিষ্ট্য। আরও জানতে মাইগ্রেশন গাইড দেখুন।
পিয়েগো

29

( একটি উত্তর থেকে ক্রস পোস্টিং আমি একই অনুরূপ প্রশ্নের উত্তর দিয়েছি - অ্যান্ড্রয়েড কি রিয়েল টাইম পুশ বিজ্ঞপ্তির কাছে সমর্থন করে? )

আমি সম্প্রতি এই ধরণের কাজ করার উপায় হিসাবে এমকিউটিটি http://mqtt.org এর সাথে অ্যান্ড্রয়েডের সাথে খেলতে শুরু করেছি (অর্থাত্ নোটিফিকেশন যা এসএমএস নয় ডেটা চালিত, প্রায় অবিলম্বে বার্তা সরবরাহ, পোলিং নয় ইত্যাদি) push

আমার যদি এটি সহায়ক হয় সে সম্পর্কে পটভূমির তথ্য সহ একটি ব্লগ পোস্ট রয়েছে

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

(দ্রষ্টব্য: এমকিউটিটি হ'ল আইবিএম প্রযুক্তি, এবং আমি চিহ্নিত করতে হবে যে আমি আইবিএমের জন্য কাজ করি।)


হাই ডেল, আমি এমকিউটিটি সম্পর্কে আপনার ব্লগ পোস্টটি পড়েছি এবং এটি অবশ্যই মোবাইলগুলিতে প্রায় তাত্ক্ষণিক বিজ্ঞপ্তির জন্য বিলটি ফিট করে। তবে এটি আসলে এটি কীভাবে করে সে সম্পর্কে কোনও তথ্য আমি সন্ধান করতে পারিনি। এটি কি কোনও সকেট সর্বদা খোলা রাখে? এটির আইপি ঠিকানা পরিবর্তিত হলে এটি সার্ভারকে কীভাবে सूचित করবে? আপনি যদি এই বিষয়ে কিছু আলোকপাত করতে পারেন তবে এটির প্রশংসা করবে। চিয়ার্স নরেন
নরেন

2
এটি একটি সংযোগ খোলা রাখে। একটি ফলো-আপ পোস্টে ( dalelane.co.uk/blog/?p=1009 ) আমি সংযোগ খোলা থাকার বিষয়টি সম্পর্কে আরও কথা বললাম - আপনি কি তা দেখেছেন? যদি সংযোগটি নষ্ট হয়ে যায় তবে সার্ভার এবং ক্লায়েন্ট উভয়কেই অবহিত করা যেতে পারে। তারপরে কীভাবে প্রতিক্রিয়া জানানো হবে (যেমন পুনরায় সংযোগ) তা সিদ্ধান্ত নেওয়ার জন্য এটি একটি অ্যাপ্লিকেশন স্তর সিদ্ধান্ত। পোস্টে উল্লিখিত দস্তাবেজগুলিতে আরও তথ্য রয়েছে (উদাহরণস্বরূপ IA92: www-01.ibm.com/support/docview.wss?rs=171&uid=swg24006006 পিডিএফ, এবং সেই পৃষ্ঠায় জিপাদোক )
ডালেলেন

18

অ্যান্ড্রয়েড পুশ বিজ্ঞপ্তির সাথে আমার বোঝার / অভিজ্ঞতা হ'ল:

  1. C2DM জিসিএম - যদি আপনার টার্গেট Android প্ল্যাটফর্ম 2.2+ হয়, তাহলে এটি জন্য যান। কেবল একটি ধরা, ডিভাইস ব্যবহারকারীদেরবার্তাগুলি পেতেসর্বদা একটি Google অ্যাকাউন্টে লগ করতে হবে।

  2. এমকিউটিটি - পাব / সাব ভিত্তিক পদ্ধতির, ডিভাইস থেকে একটি সক্রিয় সংযোগ প্রয়োজন, সংবেদনশীলভাবে প্রয়োগ না করা হলে ব্যাটারি নিকাশ করতে পারে।

  3. ডিকন - সীমিত সম্প্রদায়ের সহায়তার কারণে দীর্ঘমেয়াদে ভাল নাও হতে পারে।

সম্পাদনা : 25 নভেম্বর, 2013-এ যুক্ত হয়েছে

জিসিএম - গুগল বলেছে ...

প্রাক-3.0 ডিভাইসের জন্য, ব্যবহারকারীদের তাদের মোবাইল ডিভাইসে তাদের Google অ্যাকাউন্ট সেট আপ করতে হবে। অ্যান্ড্রয়েড 4.0.০.৪ বা তার বেশি বর্ধমান ডিভাইসে কোনও গুগল অ্যাকাউন্টের প্রয়োজন নেই *


A.০.৪ বা ততোধিক সময়ের জন্য কোনও গুগল অ্যাকাউন্টের প্রয়োজন নেই বলে মনে হয় আপনার গুগল প্লে অ্যাপ্লিকেশনটি ইনস্টল করা দরকার। গুগল অ্যাকাউন্ট না রেখে আপনি কীভাবে এটি ইনস্টল করবেন তা অবাক করে দিয়েছি।
জানুয়ারী

1
@ জান: গুগল প্লে অ্যাপ্লিকেশনটি ডিভাইস সহ ইনস্টল হয়। ব্যবহারকারীর ইনস্টল করার দরকার নেই।
ডেক্সটার

@ ডেক্সটার, সমস্ত অ্যান্ড্রয়েড ডিভাইসে ডিফল্টরূপে গুগল প্লে ইনস্টল থাকে না। বেশিরভাগে এটি ডিফল্টরূপে ইনস্টল করা আছে, বিশেষত ডিভাইসগুলি যা নামী ফোন বিক্রেতাদের কাছ থেকে কিনে নেওয়া হয়েছে তবে অ্যান্ড্রয়েড ওএসের কাছে কেবল সেগুলির কাছে ফ্ল্যাশ করা ডিভাইসগুলি সর্বদা গুগল প্লে না থাকতে পারে। (উদাহরণস্বরূপ, নতুন জিনমোশন ডিভাইসগুলির মতো অনেকগুলি অ্যান্ড্রয়েড এমুলেটরগুলির ডিফল্টরূপে গুগল প্লে থাকে না))
স্প্যান্সার ডি

সুতরাং ... গুগল প্লে ইনস্টল না থাকা অ্যান্ড্রয়েড ডিভাইসের জন্য কি এমকিউটিটি সেরা বিকল্প?
ইয়েং

17

অ্যান্ড্রয়েড ক্লাউড থেকে ডিভাইস মেসেজিং ফ্রেমওয়ার্ক

গুরুত্বপূর্ণ: সি 2 ডিএম 26 জুন, 2012-তে সরকারীভাবে অবচয় করা হয়েছে This এর অর্থ সি 2 ডিএম নতুন ব্যবহারকারী এবং কোটার অনুরোধ গ্রহণ করা বন্ধ করে দিয়েছে। সি 2 ডিএম-তে কোনও নতুন বৈশিষ্ট্য যুক্ত করা হবে না। তবে সি 2 ডিএম ব্যবহার করে অ্যাপগুলি কাজ চালিয়ে যাবে। বিদ্যমান সি 2 ডিএম বিকাশকারীদের সি 2 ডিএম এর নতুন সংস্করণে মাইগ্রেট করতে উত্সাহিত করা হয়, যাকে অ্যান্ড্রয়েডের জন্য গুগল ক্লাউড মেসেজিং (জিসিএম) বলা হয়। আরও তথ্যের জন্য C2DM-to-GCM মাইগ্রেশন নথিটি দেখুন। বিকাশকারীদের অবশ্যই নতুন বিকাশের জন্য জিসিএম ব্যবহার করতে হবে।

দয়া করে নীচের লিঙ্কটি পরীক্ষা করুন:

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


17

এখানে আমি স্ক্র্যাচ থেকে শুরু করে রেজিড এবং বিজ্ঞপ্তি পেতে কীভাবে কয়েকটি পদক্ষেপ লিখেছি

  1. গুগল ক্লাউডে অ্যাপ্লিকেশন তৈরি / নিবন্ধ করুন
  2. উন্নয়নের সাথে ক্লাউড এসডিকে সেটআপ করুন
  3. GCM এর জন্য প্রকল্পটি কনফিগার করুন
  4. ডিভাইস নিবন্ধকরণ আইডি পান
  5. পুশ বিজ্ঞপ্তি প্রেরণ করুন
  6. পুশ বিজ্ঞপ্তিগুলি গ্রহণ করুন

আপনি নীচের ইউআরএল লিঙ্কে সম্পূর্ণ টিউটোরিয়াল খুঁজে পেতে পারেন

অ্যান্ড্রয়েড পুশ বিজ্ঞপ্তি দিয়ে শুরু করা: সর্বশেষ গুগল ক্লাউড মেসেজিং (জিসিএম) - ধাপে ধাপে সম্পূর্ণ টিউটোরিয়াল

এখানে চিত্র বর্ণনা লিখুন

নিবন্ধকরণ আইডি পেতে কোড স্নিপ (পুশ নোটিফিকেশনের জন্য ডিভাইস টোকন)।

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" />

জিসিএম ব্রডকাস্ট রিসিভারের ঘোষণা যোগ করুন

আপনার অ্যাপ্লিকেশন ট্যাগটিতে জিসিএম ব্রডকাস্ট রিসিভার ঘোষণা যুক্ত করুন

<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/>

জিসিএম সার্ভি ঘোষণা ঘোষণা করুন

<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;

অনক্রিয়েট এবং অনরেসুম পদ্ধতিগুলি আপডেট করুন

@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 সঞ্চয় করুন, জিসিএমকে পিএন বার্তা প্রেরণের জন্য গুরুত্বপূর্ণ এটিও রাখুন এটি সমস্ত ডিভাইসের পক্ষে অনন্য হবে, এটি কেবলমাত্র জিসিএম ব্যবহার করে পুশ নোটিফিকেশন প্রেরণ করবে।

পুশ বিজ্ঞপ্তিগুলি গ্রহণ করুন

জিসিএম ব্রডকাস্ট রিসিভার ক্লাস যুক্ত করুন

যেহেতু আমরা ইতিমধ্যে আমাদের ম্যানিফেস্ট ফাইলে "জিসিএমড্রোডকাস্টরিসিভার.জভা" ঘোষণা করেছি, সুতরাং এই ক্লাস আপডেট রিসিভার ক্লাস কোডটি এভাবে তৈরি করি

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();
    }
}

জিসিএম পরিষেবা ক্লাস যুক্ত করুন

যেহেতু আমরা ইতিমধ্যে আমাদের ম্যানিফেস্ট ফাইলে "জিসিএমড্রোডকাস্টরিসিভার.জভা" ঘোষণা করেছি, সুতরাং এই ক্লাস আপডেট রিসিভার ক্লাস কোডটি এভাবে তৈরি করি

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());
     }
}

@ রোহিত আপনি কি সম্পূর্ণ টিউটোরিয়াল থাকা লিঙ্কটি পরীক্ষা করেছেন । এছাড়াও দয়া করে আমাকে জানাবেন কী অনুপস্থিত আমি উত্তর আপডেট করব update
সুইফটবয়

11

উল্কা ওয়েব সার্ভারের ভিত্তিতে অ্যান্ড্রয়েডে পুশ বিজ্ঞপ্তিগুলির জন্য একটি জাভা গ্রন্থাগার বিকাশের জন্য একটি নতুন ওপেন-সোর্স প্রচেষ্টা রয়েছে। আপনি ডিকন প্রকল্প ব্লগে এটি পরীক্ষা করে দেখতে পারেন , যেখানে আপনি উল্কা এবং প্রকল্পের গিটহাব সংগ্রহস্থলের লিঙ্কগুলি খুঁজে পাবেন। আমাদের বিকাশকারী প্রয়োজন, সুতরাং দয়া করে শব্দটি ছড়িয়ে দিন!


9

আপনি Xtify ( http://developer.xtify.com ) ব্যবহার করতে পারেন - তাদের একটি পুশ বিজ্ঞপ্তি রয়েছে যা তাদের এসডিকে নিয়ে কাজ করে serv এটি নিখরচায় এবং এখনও অবধি, এটি আমার পক্ষে সত্যই ভাল কাজ করেছে।


3
আমি তাদের ভিপির কাছ থেকে একটি প্রতিক্রিয়া পেয়েছি বলেছি যে পুশ পরিষেবাটির জন্য কখনও চার্জ নেওয়ার কোনও পরিকল্পনা নেই। এটি বেশ আশ্চর্যজনক এসডিকে।
ক্রো টি। রোবট

8

বা ....

3) সার্ভারের সাথে একটি সংযোগ রাখুন, প্রতি কয়েক মিনিটের মধ্যে কীপ-অ্যালাইভ প্রেরণ করুন এবং সার্ভারটি তাত্ক্ষণিকভাবে বার্তাগুলি ধাক্কা দিতে পারে। এটি জিমেইল, গুগল টক ইত্যাদি কাজ করে।


5
আমি মনে করি এটি দুঃখের সাথে মোটা পরিমাণ ব্যাটারি ড্রেন তৈরি করবে। যদি আপনি এই রুটটি নিয়ে যান তবে আপনি এটি করার সময় সীমাবদ্ধ করে তা নিশ্চিত করুন।
হাসেমেন

না, আসলে এটি তা করবে না, কারণ নিষ্ক্রিয় টিসিপি / আইপি সংযোগগুলি সেল মডেমটিতে প্রায় কোনও শক্তি নেয় না।
আইজাক ওয়ালার

আসলে, এটি সময়ের সাথে অনেক বেশি সময় নেবে, তাই আপনি ঠিক বলেছেন। দীর্ঘ বিরতিতে কিপ-লাইভ পাঠানোও অনেক সহায়তা করে।
আইজাক ওয়ালার

এক্ষেত্রে "দীর্ঘ বিরতি" কী কী? আমি জানি যে জিমেইল পুশ এ জাতীয় কাজ করে তবে আমি জানি না তারা কী টাইমআউট ব্যবধান ব্যবহার করে।
tobsen

আমি ব্যাটারি কর্মক্ষমতা টানুন পুশ বনাম সম্পর্কে এই ছবিটি পাওয়া গেছে: labs.ericsson.com/files/battery.jpg আমি এখানে এরিকসন পুশ API থেকে এটা তুলেছেন: labs.ericsson.com/apis/mobile-java-push/documentation
Menda

6

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

তবে আপনার পক্ষ থেকে বিজ্ঞপ্তিগুলি প্রেরণের জন্য এটি একটি তৃতীয় পক্ষের সার্ভার বজায় রাখা প্রয়োজন। আপনি যদি এড়াতে চান তবে অ্যান্ড্রয়েড পুশ নোটিফিকেশন পরিষেবাটির জন্য খুব ভাল কিছু শিল্প সমাধান রয়েছে:

  • আরবান এয়ারশিপ - প্রতিমাসে 1 এম অবধি বিজ্ঞপ্তি বিনামূল্যে, পরে আপনাকে প্রতি 1000 নোটিফিকেশন চার্জ করা হবে
  • পুশ অ্যাপস - মাসে 1 এম বিজ্ঞপ্তিগুলির জন্য বিনামূল্যে এবং প্রতি মাসে 19.99 এর জন্য সীমাহীন বিজ্ঞপ্তি
  • পুশওয়াশ - 1 এম ডিভাইসের জন্য বিনামূল্যে, প্রিমিয়াম পরিকল্পনা 39 ইউরো থেকে নেওয়া

ডিক্লেইমার - আমি পুশ অ্যাপসে কাজ করি এবং এক বছরেরও বেশি সময় ধরে আমার অ্যাপ্লিকেশনগুলিতে তাদের পণ্যটি ব্যবহার করি।



4

আমি আশঙ্কা করছি আপনি উভয় সম্ভাব্য পদ্ধতি খুঁজে পেয়েছেন। গুগল অন্তত প্রাথমিকভাবে, একটি জিচ্যাট এপিআই বাস্তবায়ন করতে যাচ্ছিল আপনি ধাক্কা / টান প্রয়োগের জন্য ব্যবহার করতে পারেন। দুঃখের বিষয়, সেই লাইব্রেরিটি অ্যান্ড্রয়েড 1.0 দ্বারা কেটেছিল।


1
সুরক্ষার সমস্যাগুলি শেষ হয়ে গেলে তারা এটি ফিরিয়ে আনার প্রতিশ্রুতি দিয়েছিল ... যদি এমনটি ঘটে থাকে তবে।
জেরেমি লোগান

3

আমি জানি না এটি এখনও কার্যকর কিনা। আমি http://www.pushlet.com/ এ জাভা লাইব্রেরি সহ এরকম কিছু অর্জন করেছি

অ্যালথৌগ এটি পরিষেবাতে করা অ্যান্ড্রয়েডকে শ্রোতার থ্রেডটি বন্ধ করে দেবে না।


2

গুগল সি 2 ডিএম এখন হ্রাস করা হয়েছে, তার জন্য আপনার কাছে নতুন পরিষেবা জিসিএম (গুগল ক্লাউড মেসেজিং) ব্যবহার করা হয়েছে। দলিলপত্রের জন্য, দেখুন http://developer.android.com/guide/google/gcm/gs.html


2

সি 2 ডিএম: আপনার অ্যাপ-ব্যবহারকারীদের অবশ্যই জিমেইল অ্যাকাউন্ট থাকা উচিত।

এমকিউটিটি: যখন আপনার সংযোগটি 1024 এ পৌঁছেছে, এটি লিনাক্সের "নির্বাচিত মডেল" ব্যবহার করার কারণে এটি কাজ বন্ধ করবে।

অ্যান্ড্রয়েডের জন্য একটি ফ্রি পুশ পরিষেবা এবং এপিআই রয়েছে, আপনি এটি ব্যবহার করতে পারেন: http://push-notifications.org


2

বিনামূল্যে এবং সহজ পদ্ধতি:

যদি আপনার টার্গেট ব্যবহারকারীর বেসটি বড় না হয় (1000 এর চেয়ে কম) এবং আপনি একটি নিখরচায় পরিষেবা শুরু করতে চান তবে এয়ারবপ সেরা এবং সবচেয়ে সুবিধাজনক।

এয়ারবপ ওয়েবসাইট এটির API এর মাধ্যমে গুগল ক্লাউড মেসেজিং পরিষেবা ব্যবহার করে এবং এটি একটি ভাল পারফরম্যান্স সরবরাহ করে। আমি এটি আমার দুটি প্রকল্পের জন্য ব্যবহার করেছি এবং এটি কার্যকর করা সহজ ছিল।

আরবানশিপের মতো পরিষেবাদিগুলি দুর্দান্ত তবে পুরোটি ডিপ্লোয়মেন্ট স্ট্যাক সরবরাহ করে এবং কেবল পুশ নোটিফিকেশন জিনিসটিই দেয় না।

যদি কেবল পুশ পরিষেবা আপনার লক্ষ্য হয় তবে এয়ারবপ ঠিকঠাক কাজ করবে।

আমি পুষোশ ব্যবহার করি নি , তবে এটি একটি দুর্দান্ত পছন্দ। এটি বিনামূল্যে 1,000,000 ডিভাইসে পুশ করতে দেয় allows


1

আমি এসএমএস এবং এইচটিটিপি উভয়ই ব্যবহার করার পরামর্শ দেব। যদি ব্যবহারকারী সাইন ইন না করে থাকে তবে তাদের ফোনে তাদের জানানোর জন্য একটি এসএমএস প্রেরণ করুন সেখানে একটি বার্তা অপেক্ষা করছে।

এই এরিকসন ল্যাবস পরিষেবাটি এভাবেই কাজ করে: https://labs.ericsson.com/apis/mobile-java-push/

আপনি যদি এটি নিজে প্রয়োগ করেন তবে কৌতূহলপূর্ণ অংশটি ব্যবহারকারী এটি না দেখিয়ে আগত এসএমএস মোছাচ্ছে। অথবা তারা যদি আপনার ক্ষেত্রে এটি দেখে তবে এটি ঠিক আছে।

দেখে মনে হচ্ছে এটি কাজ করে: ব্রডকাস্টরসিভার - অ্যান্ড্রয়েড ব্যবহার করে এসএমএস মোছা

হ্যাঁ, এর মতো লিখিত কোড বিপজ্জনক হতে পারে এবং আপনি কারওর জীবন সম্ভাবনা নষ্ট করতে পারেন কারণ আপনার অ্যাপ্লিকেশনটি এমন একটি এসএমএস মুছে ফেলেনি যা তার উচিত নয়।


1
লল: "হ্যাঁ, এর মতো লিখনের কোড বিপজ্জনক হতে পারে এবং আপনি সম্ভবত কারও জীবন নষ্ট করতে পারেন কারণ আপনার অ্যাপ্লিকেশনটি এমন একটি এসএমএস মুছে ফেলেনি যা তার উচিত নয়" " যে জন্য upvote। হাঃ হাঃ হাঃ.
কুমার রবি

মোবাইল জাভা পুশের লিঙ্কটি মারা গেছে এবং পরিষেবাটি নিজেই অবহেলিত বলে মনে হচ্ছে।
নেক্সা

1

আপনি গুগল ক্লাউড মেসেজিং বা জিসিএম ব্যবহার করতে পারেন এটি নিখরচায় এবং সহজেই ব্যবহারযোগ্য। এছাড়াও আপনি পুশওয়াশের মতো তৃতীয় পক্ষের পুশ সার্ভার ব্যবহার করতে পারেন যা আপনাকে আরও নমনীয়তা দেয়



1

ফায়ারবেস ক্লাউড মেসেজিং (এফসিএম) হ'ল জিসিএমের নতুন সংস্করণ। এফসিএম হ'ল একটি ক্রস-প্ল্যাটফর্ম মেসেজিং সমাধান যা আপনাকে নিরাপদে এবং বিনামূল্যে বার্তাগুলি প্রেরণ করতে দেয়। অ্যান্ড্রয়েড, আইওএস, ওয়েব (জাভাস্ক্রিপ্ট), ityক্য এবং সি ++ এ নির্ভরযোগ্যভাবে বার্তা সরবরাহ করতে জিসিএমের কেন্দ্রীয় অবকাঠামোগত অংশীদার করে।

10 এপ্রিল, 2018 পর্যন্ত, গুগল জিসিএমকে অস্বীকার করেছে। জিসিএম সার্ভার এবং ক্লায়েন্ট এপিআইগুলি হ্রাস করা হয়েছে এবং 11 এপ্রিল, 2019 এ অপসারণ করা হবে Google গুগল ফোকাসে ক্লাউড মেসেজিং (এফসিএম) এ জিসিএম অ্যাপ্লিকেশনগুলি স্থানান্তরিত করার পরামর্শ দেয়, যা নির্ভরযোগ্য এবং স্কেলযোগ্য জিসিএম অবকাঠামোগত উত্তরাধিকার সূত্রে প্রাপ্ত।

সংস্থান


0

আপনি পুশার ব্যবহার করতে পারেন

এটি একটি হোস্ট করা পরিষেবা যা ওয়েব এবং মোবাইল অ্যাপ্লিকেশনগুলিতে রিয়েল-টাইম ডেটা এবং কার্যকারিতা যুক্ত করতে অতি-সহজ করে তোলে।
পুশার সমস্ত প্রধান রানটাইম এবং ফ্রেমওয়ার্কগুলিতে সংহত করার জন্য লাইব্রেরি সরবরাহ করে।

PHP, Ruby, Python, Java, .NET, Go and Node
JavaScript, Objective-C (iOS) and Java (Android)ক্লায়েন্টের সার্ভারে ।

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