Autore Topic: Collegamento a propria app, Parse.  (Letto 872 volte)

Offline Guccio92

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7 64bit/ Mavericks 10.9
Collegamento a propria app, Parse.
« il: 04 Giugno 2015, 10:08:22 CEST »
0
Ciao a tutti ragazzi,
Io avevo un problema volevo collegare parse, per la gestione delle notifiche che mi sembra ottimo.
Ma non riesco a collegarlo alla mia app.

Grazie mille in anticipo, spero riusciate ad aiutarmi.

Offline LinkOut

  • Utente normale
  • ***
  • Post: 270
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Collegamento a propria app, Parse.
« Risposta #1 il: 04 Giugno 2015, 11:21:43 CEST »
+1
La documentazione di Parse è ottima:
https://parse.com/docs

Da lì puoi anche fare il QuickStart.


Saluti.

Offline Guccio92

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7 64bit/ Mavericks 10.9
Re:Collegamento a propria app, Parse.
« Risposta #2 il: 04 Giugno 2015, 11:52:45 CEST »
0
Ti ringrazio, per la risposta, ma con il quick start seguo la guida e quando faccio test mi dice che non ci sono dei dispositivi registrati. Non riesco a capire ho inserito sender id e api key. Come sender id ho inserito il mio project number. e come key client l'api key che mi viene fornito dall'apis console di Google. Che più o meno fa AIzaSyCvs2.....................OY. Non so se e corretta. Volevo utilizzare parse perché mi sembra una giusta soluzione e semplice per il progetto che sto sviluppando.

Offline LinkOut

  • Utente normale
  • ***
  • Post: 270
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Collegamento a propria app, Parse.
« Risposta #3 il: 04 Giugno 2015, 12:11:21 CEST »
+1
Così su due piedi è difficile rispondere. Ti da quell'errore perchè nella tabella Installation non c'è il tuo dispositivo. La causa dell'errore potrebbe essere la più varia... Come per esempio il mancato permesso di connessione nell'Android Manifest.


Offline Guccio92

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7 64bit/ Mavericks 10.9
Re:Collegamento a propria app, Parse.
« Risposta #4 il: 05 Giugno 2015, 08:14:41 CEST »
0
Ti posto tutto il codice riguardante il collegamento con Parse.
Manifest con tutti i permessi.

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.carrozzeria.prova" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <!--
The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
        Google Maps Android API v2, but are recommended.
   -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <!--
     IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
     to match your app's package name + ".permission.C2D_MESSAGE".
   -->
    <permission android:protectionLevel="signature"
       android:name="com.example.carrozzeria.prova.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.example.carrozzeria.prova.permission.C2D_MESSAGE" />



    <application
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
        <activity
           android:name=".MainActivity"
           android:label="@string/app_name"
           android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
           android:name=".Eventi"
           android:label="@string/title_activity_eventi"
           android:screenOrientation="landscape" >
        </activity>
        <activity
           android:name=".Evento1"
           android:label="@string/title_activity_evento1"
           android:screenOrientation="landscape" >
        </activity>

        <meta-data
           android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />
        <meta-data
           android:name="com.google.android.maps.v2.API_KEY"
           android:value="......................................................." />

        <activity
           android:name=".MapsActivity"
           android:label="@string/title_activity_maps"
           android:screenOrientation="landscape" >
        </activity>
        <activity
           android:name=".Evento11"
           android:label="@string/title_activity_evento11"
           android:screenOrientation="landscape">
        </activity>


        <service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
           android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
           android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <!--
                 IMPORTANT: Change "com.parse.starter" to match your app's package name.
               -->
                <category android:name="com.example.carrozzeria.prova" />
            </intent-filter>
        </receiver>



    </application>

</manifest>

Activity con il collegamento a Parse.
Spero sia qualche piccolezza il mio errore perché ne ho necessità.

Codice (Java): [Seleziona]
package com.example.carrozzeria.prova;

import android.app.Application;
import android.util.Log;

import com.parse.Parse;
import com.parse.ParseException;
import com.parse.ParseInstallation;
import com.parse.ParsePush;
import com.parse.SaveCallback;

/**
 * Created by Carrozzeria on 04/06/2015.
 */

public class ParsePushApplication extends Application{

    public void onCreate() {
        Parse.initialize(this, "....................", "...........................");  Qui devo inserire il Sender id e l'api key giusto?
        ParseInstallation.getCurrentInstallation().saveInBackground();


        ParsePush.subscribeInBackground("", new SaveCallback() {


            @Override
            public void done(ParseException e) {
                if (e == null) {
                    Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
                } else {
                    Log.e("com.parse.push", "failed to subscribe for push", e);
                }
            }
        });


    }


}








Offline LinkOut

  • Utente normale
  • ***
  • Post: 270
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Collegamento a propria app, Parse.
« Risposta #5 il: 05 Giugno 2015, 09:41:33 CEST »
+1
Parse.initialize(this, "ApplicationID", "ClientKey");

ParsePush.subscribeInBackground("METTI QUALCOSA QUI!"...

Offline Guccio92

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7 64bit/ Mavericks 10.9
Re:Collegamento a propria app, Parse.
« Risposta #6 il: 05 Giugno 2015, 09:42:23 CEST »
0
Errore risolto, ma ora quando clicco send push mi dice che sarà inviato ad un dispositivo "corretto perché il progetto momentaneamente l'ho installato solo io", ma il problema e che ora non mi si vede la notifica.... >:(

Post unito: 05 Giugno 2015, 09:45:00 CEST
E cosa vuol dire ParsePush.subscribeInBackground("METTI QUALCOSA QUI!"...)???
« Ultima modifica: 05 Giugno 2015, 09:45:00 CEST da Guccio92, Reason: Merged DoublePost »

Offline LinkOut

  • Utente normale
  • ***
  • Post: 270
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Collegamento a propria app, Parse.
« Risposta #7 il: 05 Giugno 2015, 09:53:29 CEST »
+1
https://parse.com/docs/android/api/com/parse/ParsePush.html

subscribeInBackground(String channel, SaveCallback callback)
Adds 'channel' to the 'channels' list in the current ParseInstallation and saves it in a background thread.

Offline Guccio92

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7 64bit/ Mavericks 10.9
Re:Collegamento a propria app, Parse.
« Risposta #8 il: 05 Giugno 2015, 10:03:14 CEST »
0
Ciao ho provato a fare come mi hai detto te.

 Parse.initialize(this, "UUizk3PHF7PeJttZQYQQUFNiBSm4YPcEBNY3AzFB", "iSh0KtI9na1q62RhfNLatOwo5f6MLuZuQMuBuQw4");
        ParseInstallation.getCurrentInstallation().saveInBackground();
        ParsePush.subscribeInBackground(String channel, SaveCallback callback); ----"Mi da errore nel channel e nel SaveCallback callback"

Passo per passo forse riesco   :-)


Offline LinkOut

  • Utente normale
  • ***
  • Post: 270
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Collegamento a propria app, Parse.
« Risposta #9 il: 05 Giugno 2015, 11:21:59 CEST »
+1
Dovrebbe essere così:

Codice (Java): [Seleziona]
public class ParsePushApplication extends Application{

    public void onCreate() {
         Parse.initialize(this, "UUizk3PHF7PeJttZQYQQUFNiBSm4YPcEBNY3AzFB", "iSh0KtI9na1q62RhfNLatOwo5f6MLuZuQMuBuQw4");
        ParseInstallation.getCurrentInstallation().saveInBackground();

        ParsePush.subscribeInBackground("NomeCanale", new SaveCallback() {

            @Override
            public void done(ParseException e) {
                if (e == null) {
                    Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
                } else {
                    Log.e("com.parse.push", "failed to subscribe for push", e);
                }
            }
        });
    }
}

che tipo di errore ti da?

Offline Guccio92

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7 64bit/ Mavericks 10.9
Re:Collegamento a propria app, Parse.
« Risposta #10 il: 05 Giugno 2015, 11:35:51 CEST »
0
Allora,
Adesso ho seguito questa guida,
https://www.youtube.com/watch?v=SG4NKt0P8OE


Ora mi da che la deve inviare a due dispositivi. "??"  E poi clicco su send e mi da che ad uno l'ha inviata ma niente non arriva nulla,.

  ParsePush.subscribeInBackground("NomeCanale", new SaveCallback() {
cosa devo scrivere al posto di NomeCanale

Offline LinkOut

  • Utente normale
  • ***
  • Post: 270
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Collegamento a propria app, Parse.
« Risposta #11 il: 05 Giugno 2015, 11:44:43 CEST »
+1
Off-Topic:
Ora mi da che la deve inviare a due dispositivi. "??"  E poi clicco su send e mi da che ad uno l'ha inviata ma niente non arriva nulla,.

Android a differenza di iOS ha una gestione differente per quanto riguarda la registrazione, se tu su android installi l'app due o tre volte, su parse (Tabella Installation) ci saranno 2 o 3 righe dello stesso telefono. Questo perchè da parte di google GCM non arriva una stringa univoca che identifica il telefono, viene verificata semplicemente l'installazione.

Al posto di nomecanale potresti mettere il nome dell'applicazione, i canali servono per inviare notifiche Push mirate a quei determinati canali.

Offline Guccio92

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S5
  • Sistema operativo:
    Windows 7 64bit/ Mavericks 10.9
Re:Collegamento a propria app, Parse.
« Risposta #12 il: 05 Giugno 2015, 11:46:56 CEST »
0
Ho risolto, grazie mille del supporto datomi.