如何使用 asp.net 获得 GCM 注册 ID?

Posted

技术标签:

【中文标题】如何使用 asp.net 获得 GCM 注册 ID?【英文标题】:How can I get GCM registered Id with asp.net? 【发布时间】:2016-01-14 14:37:24 【问题描述】:

我有一个接收注册 ID 并发送 GCM 的 android 应用程序。当设备注册时,我想获取它的 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 获取 ıd 代码:

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

【问题讨论】:

【参考方案1】:

试试下面的代码:

@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 广播接收器。 Link to the full answer

【讨论】:

request.setURI(url);使用 get 方法的函数,所以我想在 c# 或 asp.net 中获取注册 ID。从链接aaaaa.com/bbbbb/duyuru-haber.aspx?regId=" + regid 请求后,我必须获取注册ID

以上是关于如何使用 asp.net 获得 GCM 注册 ID?的主要内容,如果未能解决你的问题,请参考以下文章

规范注册 id gcm

如何在 iOS 中注册 GCM

asp.net 如何获得 当前用户 userid

自动 GCM 注册?

GCM/APNS 如何生成注册 ID

如何将 GCM 注册 ID 唯一地存储到 MySQL 中