CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 10 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 26 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

App engine + Google cloud endpoint Aiuto!?

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Apr 2014
    Messaggi
    14

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    App engine + Google cloud endpoint Aiuto!?

    Ciao ragazzi ho un problema con la mia app che utilizza app engine e google cloud endpoints. Il codice non da errore ma quando faccio service.register non succede nulla al mio backend che invece dovrebbe salvare il gcm id. Non ho idea di quale sia il mio errore, quindi spero che mi potrete aiutare.
    Questa è la mia activity principale:
     
    1
    2
    3
    4
    public class MainActivity extends SherlockFragmentActivity  {
    5
    6
    7
        private ActionBar actionBar;
    8
        private ViewPager viewPager;
    9
        private MenuItem add_contact_button;
    10
        private Boolean logged = false;
    11
        private MenuItem edit_contacts;
    12
        private MenuItem ok_button;
    13
        private MenuItem cancel_button;
    14
    15
        private static final int REQUEST_ACCOUNT_PICKER = 2;
    16
    17
        private Boolean rememberToRegister;
    18
        private static MainApplication sInstance;
    19
        public static Boolean doINeedToRegister= false;
    20
    21
        private GoogleCloudMessaging gcm= null;
    22
        private final String SENDER_ID = "5*********6";
    23
        RegIdManager regIdManager = new RegIdManager();
    24
    25
        private RegisterGcmId registerGcmId;
    26
        private String TAG = "MAIN APPLICATION GCM";
    27
        public static Sand.Builder builder;
    28
        public static Sand service;
    29
        private final String APP_NAME = "Sand";
    30
        public static SharedPreferences settings;
    31
        public static GoogleAccountCredential credential;
    32
        private final String SHARED_PREF_ACCOUNT = "ACCOUNT_PREF";
    33
        private final String ACCOUNT_NAME = "ACCOUNT_NAME";
    34
        static final String WEB_CLIENT_ID = "6**************************com";
    35
        private String accountName;
    36
    37
    38
    39
    40
    41
        Context context;
    42
        ProgressDialog dialog;
    43
    44
        public String reg_id;
    45
    46
    47
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    48
        protected void onCreate(Bundle savedInstanceState) {
    49
            super.onCreate(savedInstanceState);
    50
            setContentView(R.layout.activity_main);
    51
    52
            if (TextUtils.isEmpty(reg_id)){
    53
    54
    55
    56
    57
            builder = new Sand.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), null).setApplicationName(APP_NAME);
    58
            service = builder.build();
    59
    60
            credential = GoogleAccountCredential.usingAudience(this,
    61
                    "server:client_id:" + WEB_CLIENT_ID);
    62
            settings = getSharedPreferences(SHARED_PREF_ACCOUNT,MODE_PRIVATE);
    63
    64
            setAccountName(settings.getString(ACCOUNT_NAME, null));
    65
            if (credential.getSelectedAccountName() != null) {
    66
                // Already signed in, begin app!
    67
                Toast.makeText(this, "Logged in with : " + credential.getSelectedAccountName(), Toast.LENGTH_SHORT).show();
    68
                //Toast.makeText(getBaseContext(), GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext()),Toast.LENGTH_SHORT).show();
    69
            }
    70
                else
    71
            {
    72
                chooseAccount();
    73
            }
    74
                RegIdManager.storeRegistrationId(this,"");
    75
                reg_id = RegIdManager.getRegistrationId(this);
    76
                Log.d(TAG,"REG ID: "+reg_id);
    77
    78
                if (TextUtils.isEmpty(reg_id)){
    79
                    registerGcmId = new RegisterGcmId();
    80
                    Log.d(TAG,"Progress Dialog");
    81
                    dialog = ProgressDialog.show(this, "", "Getting GCM id...", false, true);
    82
                    context = this;
    83
                    registerGcmId.execute((Void) null);
    84
                }
    85
    86
            }
    87
        }
    88
    89
    90
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    91
        public boolean onCreateOptionsMenu(Menu menu) {
    92
            /*superato limite caratteri*/
    93
    94
    95
            return super.onCreateOptionsMenu(menu);
    96
        }
    97
    98
        private ViewPager.SimpleOnPageChangeListener onPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
    99
            @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    100
            public void onPageSelected(int position) {
    101
                super.onPageSelected(position);
    102
                actionBar.setSelectedNavigationItem(position);
    103
            }
    104
        };
    105
    106
        private void addActionBarTabs() {
    107
            actionBar = getSupportActionBar();
    108
            String[] tabs = {"Chats", "Contacts"};
    109
            for (String tabTitle : tabs) {
    110
                ActionBar.Tab tab = actionBar.newTab().setText(tabTitle)
    111
                        .setTabListener(tabListener);
    112
                actionBar.addTab(tab);
    113
    114
            }
    115
    116
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    117
        }
    118
    119
    120
        private ActionBar.TabListener tabListener = new ActionBar.TabListener() {
    121
            @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    122
            public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
    123
               viewPager.setCurrentItem(tab.getPosition());
    124
               switch (tab.getPosition()) {
    125
                    case 0:
    126
                        add_contact_button.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    127
                        edit_contacts.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    128
                        break;
    129
    130
                    case 1:
    131
                        add_contact_button.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    132
                        edit_contacts.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    133
                        break;
    134
    135
                }
    136
    137
    138
            }
    139
    140
            @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    141
            public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
    142
    143
                switch (tab.getPosition()) {
    144
                    case 0:
    145
                        break;
    146
    147
                    case 1:
    148
    149
                        //ok_button.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    150
                        //cancel_button.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    151
                        break;
    152
    153
                }
    154
            }
    155
    156
            @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    157
            public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
    158
               switch (tab.getPosition()) {
    159
                    case 0:
    160
                        edit_contacts.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    161
                        add_contact_button.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    162
                        break;
    163
                    case 1:
    164
                        add_contact_button.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    165
                        edit_contacts.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    166
                        break;
    167
    168
    169
                }
    170
            }
    171
        };
    172
    173
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    174
        public boolean onOptionsItemSelected(MenuItem item) {
    175
            /*superato limite caratteri*/
    176
    177
        }
    178
    179
    180
       private void onClickAddContact(){
    181
           Intent i = new Intent(this,AddContactActivity.class);
    182
           startActivity(i);
    183
       }
    184
    185
        private void onClickEditContacts(){
    186
            Intent i = new Intent(this,EditContactsActivity.class);
    187
            startActivity(i);
    188
        }
    189
    190
    191
        private void setAccountName(String accountName) {
    192
            SharedPreferences.Editor editor = settings.edit();
    193
            editor.putString("ACCOUNT_NAME", accountName);
    194
            editor.commit();
    195
            credential.setSelectedAccountName(accountName);
    196
            this.accountName = accountName;
    197
        }
    198
    199
    200
        void chooseAccount() {
    201
            try
    202
            {
    203
                startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
    204
            }
    205
            catch (ActivityNotFoundException e)
    206
            {
    207
    208
                Toast.makeText(this, "ActivityNotFoundException in method chooseaccount() ", Toast.LENGTH_LONG).show();
    209
    210
                return;
    211
            }
    212
        }
    213
    214
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    215
        protected void onActivityResult(int requestCode, int resultCode,
    216
                                        Intent data) {
    217
            super.onActivityResult(requestCode, resultCode, data);
    218
            switch (requestCode) {
    219
                case REQUEST_ACCOUNT_PICKER:
    220
                    if (data != null && data.getExtras() != null) {
    221
                        String accountName =
    222
                                data.getExtras().getString(
    223
                                        AccountManager.KEY_ACCOUNT_NAME);
    224
                        if (accountName != null) {
    225
                            setAccountName(accountName);
    226
                            SharedPreferences.Editor editor = settings.edit();
    227
                            editor.putString(ACCOUNT_NAME, accountName);
    228
                            editor.commit();
    229
                            // User is authorized.
    230
                        }
    231
                    }
    232
                    break;
    233
            }
    234
        }
    235
    236
    237
        class RegisterGcmId  extends AsyncTask<Void, Void, Void> {
    238
    239
            @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    240
            protected Void doInBackground(Void... params) {
    241
    242
                try {
    243
                    if (gcm == null) {
    244
                        gcm = GoogleCloudMessaging.getInstance(context);
    245
                        Log.i("GCM","gcm.toString(): "+gcm.toString());
    246
                    }
    247
                    reg_id = gcm.register(SENDER_ID);
    248
                    Log.i("GCM","Reg Id: "+reg_id);
    249
                    service.register(reg_id);   // QUI C'è QUALCOSA CHE NON VA
    250
                    regIdManager.storeRegistrationId(context, reg_id);
    251
                    dialog.dismiss();
    252
    253
    254
                } catch (IOException ex) {
    255
                    Log.e("GCM","Error :" + ex.getMessage());
    256
                    dialog.dismiss();
    257
                }
    258
                catch (NullPointerException ne){
    259
                    Log.e("GCM","Error null pointer :" );
    260
                    ne.printStackTrace();
    261
                    dialog.dismiss();
    262
                }
    263
    264
    265
                return null;
    266
            }
    267
        }
    268
    269
    270
        }
    271


    E questo è il mio metodo register caricato su app engine:
    17
     
    1
    @ApiMethod(name = "register", path = "register", httpMethod = HttpMethod.POST)
    2
        public WrappedBoolean register @<a rel="nofollow" href="https://www.androidiani.com/forum/members/name.html" target="_blank">Name</a>d("user")User user, @<a rel="nofollow" href="https://www.androidiani.com/forum/members/name.html" target="_blank">Name</a>d("gcm_id")String gcm_id) throws UnauthorizedException, NullPointerException
    3
        {
    4
            if (user==null)
    5
                throw new UnauthorizedException("You are not logged in.");
    6
            if (gcm_id==null)
    7
                throw new NullPointerException("GCM id is null.");
    8
            
    9
            SandUser sandUser = ofy().load().key(Key.create(SandUser.class,user.getUserId())).now();
    10
            
    11
            if (sandUser==null || sandUser.getGcm_id()!= gcm_id){
    12
                sandUser = new SandUser(user,gcm_id);
    13
                ofy().save().entity(sandUser).now();
    14
            }
    15
           
    16
            return new WrappedBoolean(true);
    17
        }

  2.  

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy