Salve a tutti.
Non sapevo se scrivere qua o nella sezione Google Play... Alla fine ho optato per questa.
Sto sviluppando un'applicazione da portare poi come progetto della tesina. Ma sono da alcuni giorni bloccato sul medesimo punto..
Sarebbe un'applicazione di messaggistica.. Originalità bassa.. Ma di fantasia non ne ho..
Al momento dell'inivio del messaggio la procedura va a buon fine.. ma il metodo onMessageSent non viene chiamato... Attendo... non cambia nulla...
Allora decido di chiudere e riaprire l'applicazione.. ed in quel momento viene richiamato l' onMessageSent...
Ho fatto un altro tentativo.. Ho inviato tramite un'estensione chrome (DHC) una notifica push all'applicazione, la riceve correttamente e, come per magia, invia i messaggi che sono in attesa.
Non riesco a capire dove stia l'errore.
Grazie a chiunque risponda.
Allego alcuni frammenti di codice che ritengo utili.. se serve altro chiedete.. Grazie mille.
1public class GCMMessagesHandler extends GcmListenerService {
2
3public GCMMessagesHandler() {
4System.out.println("GCMLISTENERSERVICE!!!");
5}
6
7<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
8public void onMessageReceived(String from, Bundle data) {
9System.out.println("Messages received");
10//Handle json
11//create notification
12}
13
14<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
15public void onMessageSent(String msgId) {
16super.onMessageSent(msgId);
17System.out.println("Message Sent");
18}
19
20<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
21public void onSendError(String msgId, String error) {
22super.onSendError(msgId, error);
23System.out.println("Error:"+msgId+" "+error);
24}
25}
26
491public class MessagesSenderTask extends AsyncTask<Message, Void, Boolean> {
2private GoogleCloudMessaging googleCloudMessaging;
3private String id;
4private static final String MSG_TEXT = "Text";
5private static final String MSG_SENDER_ID = "Sender";
6private static final String MSG_GROUP_ID = "Group";
7private static final String MSG_TYPE = "Type";
8private static final String MSG_USER_TYPE = "User_Type";
9private static final String MSG_TIME = "Time";
10Message m;
11private AtomicInteger integer;
12
13
14public MessagesSenderTask(Context context) {
15googleCloudMessaging = GoogleCloudMessaging.getInstance(context.getApplicationContext());
16id = PreferenceManager.getDefaultSharedPreferences(context).getString("My_Number", "");
17integer = new AtomicInteger();
18System.out.println("Task Created");
19
20}
21
22<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
23protected Boolean doInBackground(Message... params) {
24this.m = params[0];
25try {
26Bundle bundle = new Bundle();
27bundle.putString(MSG_TEXT, m.getText());
28bundle.putString(MSG_SENDER_ID, m.getUserId());
29bundle.putInt(MSG_TYPE, m.getMessageType());
30bundle.putInt(MSG_USER_TYPE, m.getMessageUserType());
31bundle.putLong(MSG_TIME, m.getDate().getTime());
32if (m.getMessageUserType() == 1) {
33bundle.putInt(MSG_GROUP_ID, m.getGroupId());
34}
35System.out.println("Message Created");
36googleCloudMessaging.send(id + "@gcm.googleapis.com", integer.incrementAndGet() + "",1000, bundle);
37} catch (IOException e) {
38e.printStackTrace();
39return false;
40}
41return true;
42}
43
44<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
45protected void onPostExecute(Boolean successfull) {
46if (successfull) {
47m.serverReceived();
48}
49}
1021
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3xmlns:tools="http://schemas.android.com/tools"
4package="it.paolo7297.homingpigeon">
5
6<meta-data
7android:name="com.google.android.gms.version"
8android:value="@integer/google_play_services_version" />
9
10<permission
11android:name="it.paolo7297.homingpigeon.permission .C2D_MESSAGE"
12android:protectionLevel="signature" />
13
14<uses-permission-sdk-23
15android:name="android.permission.READ_CONTACTS" />
16<uses-permission
17android:name="android.permission.READ_CONTACTS" />
18
19<uses-permission-sdk-23
20android:name="it.paolo7297.homingpigeon.permission .C2D_MESSAGE"/>
21<uses-permission
22android:name="it.paolo7297.homingpigeon.permission .C2D_MESSAGE"/>
23
24<uses-permission-sdk-23
25android:name="android.permission.INTERNET" />
26<uses-permission
27android:name="android.permission.INTERNET" />
28
29<uses-permission-sdk-23
30android:name="android.permission.WAKE_LOCK" />
31<uses-permission
32android:name="android.permission.WAKE_LOCK" />
33
34<uses-permission
35android:name="com.google.android.c2dm.permission.R ECEIVE" />
36
37<application
38android:allowBackup="true"
39android:icon="@mipmap/ic_launcher"
40android:label="@string/app_name"
41android:supportsRtl="true"
42android:theme="@style/AppTheme" >
43
44<activity
45android:name=".StartupActivity"
46android:windowSoftInputMode="adjustPan"
47android:configChanges="orientation|screenSize" >
48<intent-filter>
49<action
50android:name="android.intent.action.MAIN" />
51
52<category
53android:name="android.intent.category.LAUNCHER" />
54</intent-filter>
55</activity>
56
57<activity
58android:name=".MessagesList"
59android:windowSoftInputMode="adjustResize"
60android:configChanges="orientation|screenSize">
61
62</activity>
63
64<service android:name=".communication.GCMMessagesHandler"
65android:exported="false" >
66<intent-filter>
67<action android:name="com.google.android.c2dm.intent.RECEI VE" />
68</intent-filter>
69</service>
70
71<service
72android:name=".communication.GCMTokenRefreshListen er"
73android:exported="false" >
74<intent-filter >
75<action android:name="com.google.android.gms.iid.InstanceI D" />
76</intent-filter >
77</service >
78
79<receiver
80android:name="com.google.android.gms.gcm.GcmReceiv er"
81android:exported="true"
82android:permission="com.google.android.c2dm.permis sion.SEND" >
83<intent-filter >
84<action android:name="com.google.android.c2dm.intent.REGIS TRATION" />
85<action android:name="com.google.android.c2dm.intent.RECEI VE" />
86<action android:name="com.google.android.c2dm.intent.GCM_R ECEIVED_ACTION" />
87<category android:name="it.paolo7297.homingpigeon" />
88</intent-filter >
89<meta-data
90android:name="com.google.android.gms.version"
91android:value="@integer/google_play_services_version"/>
92</receiver>
93
94<service
95android:name=".communication.GCMRegistrationIntent Service"
96android:exported="false">
97</service>
98
99</application>
100
101</manifest>
102