2016-01-14 3 views
0

У меня есть приложение для Android, которое получает зарегистрированные идентификаторы и отправляет GCM. Когда регистрируется устройство, я хотел бы взять его id и добавить его на мой сервер MSSQL. Как я могу получить зарегистрированный ID устройства с помощью asp.net?Как я могу получить зарегистрированный идентификатор GCM с asp.net?

андроида Код запроса:

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

ответ

0

Попробуйте следующий код:

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

Вы можете захотеть сделать конечно, вы добавили все требуемые d в файле AndroidManifest, а также объявить службу GCM и приемник GCM Broadcast. Link to the full answer

+0

request.setURI (url); функция, используя метод get, поэтому я хочу получить registerID в C# или asp.net. Я должен зарегистрироватьID по запросу по ссылке http://aaaaaa.com/bbbbb/duyuru-haber.aspx?regId= "+ regid –

Смежные вопросы