0

I have an android application which receives registered IDs and sends GCM. When a device registers I would like to take its id and add it to my MSSQL server. How can I get the devices's registered ID with asp.net?

android request code:

 private void sendRegistrationIdToBackend() {//Sunucuya regid deðerini gönderecek method

    URI url = null;
    try {
        url = new URI("http://aaaaa.com/bbbbb/duyuru-haber.aspx?regId=" + regid);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    HttpClient httpclient = new DefaultHttpClient();
    HttpGet request = new HttpGet();
    request.setURI(url);
    try {
        httpclient.execute(request);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

asp.net get ıd code :

string registered_id = Request.QueryString["regId"];
Ali K.
  • 3
  • 3

1 Answers1

0

Try the following code:

@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.");
          }
      }
}

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

You may want to make sure you added all the required lines in the AndroidManifest file, as well as declaring a GCM Service and a GCM Broadcast Receiver. Link to the full answer

Community
  • 1
  • 1
Skatz1990
  • 212
  • 7
  • 19
  • request.setURI(url); function using get method so I want get registeredID at c# or asp.net . I have to take registeredID after request from link http://aaaaa.com/bbbbb/duyuru-haber.aspx?regId=" + regid – Ali K. Jan 14 '16 at 15:33