Android Parse การแจ้งเตือนและ buildTypes

ขณะนี้ฉันกำลังใช้ parse เพื่อส่งและรับการแจ้งเตือนแบบพุชใน แอป Android
ทุกอย่างเรียบร้อยดีจนกระทั่งฉันเพิ่มส่วนต่อท้ายรหัสแอปพลิเคชันลงใน build.gradle ของฉันสำหรับประเภทบิลด์การแก้ไขข้อบกพร่อง:

defaultConfig {
    applicationId "com.example.myapp"
    ...
}

buildTypes {
    debug {
        applicationIdSuffix ".debug"
        ...
    }
    release {
        ...
    }
}

ตอนนี้ฉันเห็นได้ใน Parse ว่าการติดตั้งใหม่ได้รับการลงทะเบียนด้วยฟิลด์ applicationId : com.example.myapp.debug ดังนั้นในไฟล์ Manifest ฉันใช้โค้ดต่อไปนี้:

<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" />

            <category android:name="${applicationId}" />

        </intent-filter>
    </receiver>

การทำเช่นนี้ฉันคิดว่าการลงทะเบียนจะเป็นแบบไดนามิกตามประเภทบิลด์

จริงๆ แล้วมันไม่ได้ผล : การติดตั้งที่ลงทะเบียนด้วยส่วนต่อท้าย .debug จะไม่มี GCMSenderId หรือ DeviceToken ดังนั้นฉันจึงไม่สามารถรับการแจ้งเตือนใดๆ ได้ เห็นได้ชัดว่าฉันขาดจุดหนึ่งไป หรือฉันไม่เข้าใจว่าการลงทะเบียนทำงานอย่างไร แต่ไม่รู้ว่าจะทำให้มันโอเคได้อย่างไร
Parse ใช้ applicationId เพื่อลงทะเบียนแอปพลิเคชัน หรือชื่อแพ็คเกจจริง (ใช้แล้ว) สำหรับร) ?

มีใครจัดการเพื่อจัดการการแจ้งเตือนแยกวิเคราะห์ด้วย buildTypes ที่แตกต่างกัน (ส่วนต่อท้าย applicationId) หรือไม่




คำตอบ (1)


ตกลง ในที่สุดฉันก็คิดออก ฉันลืมเพิ่มไดนามิก applicationId ในการประกาศสิทธิ์...

<permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />

แก้ไขปัญหา.

person Pierre    schedule 28.05.2015
comment
ถ้ามันทำให้คุณรู้สึกดีขึ้น ฉันก็เจอสิ่งเดียวกันและหัวข้อไร้สาระของคุณก็ช่วยฉันจากตัวเอง (และความเจ็บปวดที่มากขึ้น) :) ขอบคุณ - person Devon Biere; 30.07.2015