繁体   English   中英

我如何通过asp.net获得GCM注册ID?

[英]How can I get GCM registered Id with asp.net?

我有一个Android应用程序,它接收注册ID并发送GCM。 设备注册后,我想获取其ID并将其添加到我的MSSQL服务器中。 如何通过asp.net获取设备的注册ID?

android请求代码:

 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获取代码:

string registered_id = Request.QueryString["regId"];

尝试以下代码:

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

您可能需要确保在AndroidManifest文件中添加了所有必需的行,以及声明了GCM服务和GCM广播接收器。 链接到完整答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM