Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

C2DM APP Crash

Das Thema "C2DM APP Crash" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 29.11.2011, 06:46   #1 (permalink)
Junior Mitglied

Registriert seit: 14.07.2009
Beiträge: 33
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard C2DM APP Crash

Hallo,

da bin ich mal wieder
Ich habe gestern versucht meine APP C2DM tauglich zu machen.
Jedoch stürtzt Sie ab.

Meine Manifest:

PHP-Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.BTCar2"
      android:versionCode="1"
      android:versionName="1.0">
   <permission android:name="com.BTCar2.permission.C2D_MESSAGE" android:protectionLevel="signature" />
   <uses-permission android:name="com.BTCar2.permission.C2D_MESSAGE" />

   <!-- This app has permission to register and receive message -->
   <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
   <uses-permission android:name="android.permission.INTERNET" />
      
      
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CAMERA" />
 <uses-feature android:name="android.hardware.camera" />
 <uses-feature android:name="android.hardware.camera.autofocus" />
 <uses-permission android:name="android.permission.FLASHLIGHT" />
 


    <application android:icon="@drawable/icon" android:label="@string/app_name">
    
            <activity android:name=".BTCar2"
                  android:label="@string/app_name"
                  android:windowSoftInputMode="stateHidden"
                  android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name=".C2DMReceiver" />
        <receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
              <intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.BTCar2" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.BTCar2" />
</intent-filter>
</receiver>

    </application>
</manifest>
Registration mit einem Button verbunden

PHP-Code:
public void c2dmreg() {
    
    
Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
    
registrationIntent.putExtra("app"PendingIntent.getBroadcast(this0, new Intent(), 0)); // boilerplate
    
registrationIntent.putExtra("sender""Meine Emailadresse");
    
startService(registrationIntent);
    
    
Log.e(TAG"c2dmreg"); 
und dann habe ich noch das bei mir drinne stehen
PHP-Code:
public void onReceive(Context contextIntent intent) {
    if (
intent.getAction().equals("com.google.android.c2dm.intent.REGISTRATION")) {
        
Log.w("C2DM""Received registration ID");
        
handleRegistration(contextintent);
    } else if (
intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) {
        
Log.w("C2DM""Received registration ID");
        
//handleMessage(context, intent);
     
}
 }

private 
void handleRegistration(Context contextIntent intent) {
    
String registration intent.getStringExtra("registration_id"); 
    if (
intent.getStringExtra("error") != null) {
        
Log.w("C2DM""error");
    } else if (
intent.getStringExtra("unregistered") != null) {
        
// unregistration done, new messages from the authorized sender will be rejected
    
} else if (registration != null) {
        
Log.w("C2DM""ok");
       
// Send the registration ID to the 3rd party site that is sending the messages.
       // This should be done in a separate thread.
       // When done, remember that all registration is done. 
    
}

1. Muss ich in App & Sender was eintragen?
2. welche E-Mailadresse gehört in das Feld Meine Emailadresse
3. handleMessage(context, intent); was soll ich damit machen?

4. Meine App Crashed beim aufrufen von public void c2dmreg()

5. Axo mein package com.BTCar2 habe ich auf http://code.google.com/android/c2dm/signup.html regestriert und habe eine Bestätigung bekommen. Kann ich eigentlich irgendwo einsehen welche package C2DM regestriert sind z.B. von mir?


Ich hoffe ihr könnt mir helfen

Geändert von tau31535 (29.11.2011 um 06:53 Uhr) Grund: Ergänzung
tau31535 ist offline   Mit Zitat antworten
Alt 30.11.2011, 07:55   #2 (permalink)
Junior Mitglied

Registriert seit: 09.01.2010
Beiträge: 40
Abgegebene Danke: 5
Erhielt 5 Danke für 4 Beiträge
Standard AW: C2DM APP Crash

Hallo!

Als Sender Intent musst du deine E-Mail Adresse angeben, mit der du dein Package beim C2DM registriert hast. Das Feld heißt "Role (sender) account email". Das heißt nichts anderes, als das du nur von dem Google Konto C2DM Messages zu deinem App schicken darfst.

Zu deinem Manifest: Du Musst deine Receiver Activity nicht als Service definieren, sondern als Receiver! Ich hab meine noch dazu vom BroadcastReceiver abgeleitet.

Code:

<receiver android:name=".C2DMReceiver" 
          android:permission="com.google.android.c2dm.permission.SEND">
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <category android:name="com.BTCar2" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="com.BTCar2" />
    </intent-filter>
</receiver>
Probier mal das Manifest so umzuschreiben. Ich denke das dein App deswegen abstürzt. Weiters musst du dir noch ein Handling überlegen, um die RegistrationID auf deinen Server zu bekommen. Ich hab mir dazu ein php File erstellt, dem die RegistrationID per HTTP Post übergeben wird, und diese insertiert mir dann die ID in meine Backend Datenbank.


Am Besten du schaust dir mal dieses Tutorial an. Im handleMessage(context, intent); musst du einfach nur aus dem intent deinen Payload String auslesen und dann wie gewünscht ausgeben.


LG
HerrHofrat ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
ClockworkMod 2.5.1.2: Crash... Hassan Root / Hacking / Modding für Samsung Galaxy Tab 5 18.07.2011 23:22
Icon loescht sich selbst! Bug - App Crash - Kernel Bug - Virus ? traster Root / Hacking / Modding für Nexus S 2 16.07.2011 13:49
Software Crash Roman441 HTC Wildfire S Forum 6 06.06.2011 23:19
Seltsamer Crash Liamissimo Android App Entwicklung 7 08.03.2011 14:58
C2DM: Nachricht senden sellfisch Android App Entwicklung 4 05.03.2011 07:17




Du liest gerade: "C2DM APP Crash" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.