Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9015909
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T03:52:01+00:00 2026-06-16T03:52:01+00:00

Hello I have a google cloud messaging in my app This is code my

  • 0

Hello I have a google cloud messaging in my app This is code my Main:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import pdf2app.actionBars.ActionBarMain;
import pdf2app.config.GlobalConfig;
import pdf2app.database.ObjectsDBAdapter;
import pdf2app.debug.MY_DEBUG;
import pdf2app.gallery.ListViewGallery;
import pdf2app.helpers.ThumbnailsGalleryGenerator;
import pl.spot.p2a.R;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.res.AssetManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Window;
import com.google.android.gcm.GCMRegistrar;
import com.radaee.pdf.Global; 


public class MainActivity extends Activity{
    public static final int DELETE = 0;
    public static final String SENDER_ID = "410016639123";
    private static final int APP_ID = 1;
    public static int VIEW_ID = 2; 
    private String registrationStatus = "Not yet registered";
    private boolean listviewSelected;
    private String TAG = "push";
     private String regId = "";
    Bundle extras;
    IntentFilter gcmFilter;
    private String broadcastMessage = "No broadcast message";
    /** Called when the activity is first created. */
     private BroadcastReceiver gcmReceiver = new BroadcastReceiver() {


            @Override
            public void onReceive(Context context, Intent intent) {
                broadcastMessage = intent.getExtras().getString("gcm");

                if (broadcastMessage != null) {
                    // display our received message
                    Log.v("Broadcast", broadcastMessage);
                }

            }
        };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

//      checkNotNull(SENDER_ID, "SENDER_ID");
//      GCMRegistrar.checkDevice(this);
//      GCMRegistrar.checkManifest(this);


        requestWindowFeature(Window.FEATURE_ACTION_BAR);
        setContentView(R.layout.activity_main);
        extras = getIntent().getExtras();


        if (savedInstanceState == null) {

            if(extras == null) {
                GlobalConfig.setAPPLICATION_ID(APP_ID);

            } else {

                GlobalConfig.setAPPLICATION_ID(extras.getInt("application_id", 0));
            }
        } else {
           MY_DEBUG.print("SavedInstanceState is not null");
        }
        GlobalConfig.setBookmark(0);

        gcmFilter = new IntentFilter();
        gcmFilter.addAction("GCM_RECEIVED_ACTION");

        registerClient();

//      //notifications
//      final String regId = GCMRegistrar.getRegistrationId(this);
//      
//       
//      if (regId.equals("")) {
//          GCMRegistrar.register(this, SENDER_ID);
//      } else {
//          Log.v(TAG, "Already registered");
//          }
//
//      Log.v(TAG, "registration id  "+regId);


        SharedPreferences preferences = getSharedPreferences(GlobalConfig.getApp(), MODE_WORLD_READABLE);
        listviewSelected = preferences.getBoolean(ActionBarMain.LISTVIEW_SELECTED, false);
        GlobalConfig.setLastUpdate(preferences.getLong(ObjectsDBAdapter.TIMESTAMP, 0));
        GlobalConfig.getUser(this);

        Intent intent1 = new Intent(this, DownloaderService.class);
        intent1.putExtra(DownloaderService.TYPE, DownloaderService.GET_CONFIG);
        startService(intent1);

        AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>(){

            @Override
            protected Void doInBackground(Void... params) {
                CopyAssets();
                return null;
            }
            protected void onPostExecute(Void result) {
            };
        }.execute();
        finish();
    }

    public void registerClient() {

        try {
            // Check that the device supports GCM (should be in a try / catch)
            GCMRegistrar.checkDevice(this);

            // Check the manifest to be sure this app has all the required
            // permissions.
            GCMRegistrar.checkManifest(this);

            // Get the existing registration id, if it exists.
            regId = GCMRegistrar.getRegistrationId(this);

            if (regId.equals("")) {

                registrationStatus = "Registering...";

                // register this device for this project
                GCMRegistrar.register(this, SENDER_ID);
                regId = GCMRegistrar.getRegistrationId(this);

                registrationStatus = "Registration Acquired";

                // This is actually a dummy function.  At this point, one
                // would send the registration id, and other identifying
                // information to your server, which should save the id
                // for use when broadcasting messages.
                sendRegistrationToServer();

            } else {

                registrationStatus = "Already registered";

            }


        } catch (Exception e) {

            e.printStackTrace();
            registrationStatus = e.getMessage();

        }

        Log.d(TAG, registrationStatus);

        // This is part of our CHEAT.  For this demo, you'll need to
        // capture this registration id so it can be used in our demo web
        // service.
        Log.d(TAG, regId);

    }

     private void sendRegistrationToServer() {
            // This is an empty placeholder for an asynchronous task to post the
            // registration
            // id and any other identifying information to your server.
        }

        @Override
        public void onSaveInstanceState(Bundle savedInstanceState) {

            super.onSaveInstanceState(savedInstanceState);

            savedInstanceState.putString("BroadcastMessage", broadcastMessage);

        }

        @Override
        public void onRestoreInstanceState(Bundle savedInstanceState) {

            super.onRestoreInstanceState(savedInstanceState);

            broadcastMessage = savedInstanceState.getString("BroadcastMessage");
            Log.v("BroadCastMes", broadcastMessage);

        }   
    private void checkNotNull(Object reference, String name) {
        if (reference == null) {
            throw new NullPointerException(
                    getString(R.string.error_config, name));
        }
    }

    @Override
    protected void onPause() {
        GCMRegistrar.unregister(this);
        super.onPause();

    }
    @Override
    protected void onResume() {
        super.onResume();
        registerReceiver(gcmReceiver, gcmFilter);

    }

    @Override
    public void onDestroy() {

        GCMRegistrar.onDestroy(this);

        super.onDestroy();
    }
    /**
     * checks whether the sdcard is mounted
     * @param requireWriteAccess
     * @return whether the sdcard is mounted 
     */
    static public boolean hasStorage(boolean requireWriteAccess) {
        //TODO: After fix the bug,  add "if (VERBOSE)" before logging errors.
        String state = Environment.getExternalStorageState();
        Log.v("tag", "storage state is " + state);

        if (Environment.MEDIA_MOUNTED.equals(state)) {
            if (requireWriteAccess) {
                boolean writable = checkFsWritable();
                Log.v("tag", "storage writable is " + writable);
                return writable;
            } else {
                return true;
            }
        } else if (!requireWriteAccess && Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            return true;
        }
        return false;
    }

    private static boolean checkFsWritable() {
        // Create a temporary file to see whether a volume is really writeable.
        // It's important not to put it in the root directory which may have a
        // limit on the number of files.
        String directoryName = Environment.getExternalStorageDirectory().toString() + "/DCIM";
        File directory = new File(directoryName);
        if (!directory.isDirectory()) {
            if (!directory.mkdirs()) {
                return false;
            }
        }
        return directory.canWrite();
    }

    /**
     * copies all assets (icons, terms document) to the sdcard if they are missing. 
     */
    private void CopyAssets() {
        Global.Init(this);

        File f = new File(GlobalConfig.getBaseDirectory());
        if (!f.exists())
            f.mkdirs();

            File file = new File(GlobalConfig.getTermsFile());
            if(file.exists()){
                MY_DEBUG.LOG(getClass(), "getApplicationID" + GlobalConfig.getApplicationID());
                MY_DEBUG.LOG(getClass(), "getAPPLICATION_ID" + GlobalConfig.getAPPLICATION_ID());
                ThumbnailsGalleryGenerator.generateTermsThumbs(GlobalConfig.getTermsFile(), this);
                // TODO generate terms database pages
            } else {
                if(GlobalConfig.getAPPLICATION_ID() == APP_ID) {
                    AssetManager assetManager = getAssets();
                    String[] files = null;
                    try {
                        files = assetManager.list("Files");
                    } catch (IOException e) {
                        MY_DEBUG.print(e);
                    }

                    InputStream in = null;
                    OutputStream out = null;

                    try {
                        in = assetManager.open("Files/terms.pdf");

                        out = new FileOutputStream(GlobalConfig.getTermsFile());

                        copyFile(in, out);
                        in.close();
                        in = null;
                        out.flush();
                        out.close();
                        out = null;
                    } catch (IOException e) {
//                      e.printStackTrace();
//                      Log.e("tag", e.getMessage());
                    } 
                    ThumbnailsGalleryGenerator.generateTermsThumbs(GlobalConfig.getTermsFile(), this);
                }
            }

//        String[] icons = null;
//        try {
//          File iconsDir = new File(f.getPath() + "/icons");
//          if (!iconsDir.exists())
//              iconsDir.mkdirs();
//          
//          icons = assetManager.list("Files/icons");
//            for(String icon : icons) {
//              in = null;
//                out = null;
//                if(!(new File(GlobalConfig.getBaseDirectory() +"/icons" + icon).exists())){
//                  in = assetManager.open("Files/icons/"+icon);   // if files resides inside the "Files" directory itself
//                  out = new FileOutputStream(GlobalConfig.getBaseDirectory() + "/icons/" + icon);
//              
//                  copyFile(in, out);
//                  in.close();
//                  in = null;
//                  out.flush();
//                  out.close();
//                  out = null;
//                }
//            }
//        } catch (Exception e) {
//            Log.e("tag", e.getMessage());
//        }
    }

    private void copyFile(InputStream in, OutputStream out) throws IOException {
        byte[] buffer = new byte[1024];
        int read;
        while((read = in.read(buffer)) != -1){
          out.write(buffer, 0, read);
        }
    }

    @Override
    public void finish() {
        Intent intent = new Intent();
        if (listviewSelected) {
            intent = new Intent(MainActivity.this, ListViewGallery.class);
            intent.putExtra("ClassName", "action_bar_listView_icon");
            startActivity(intent);
        } else {
            intent = new Intent(MainActivity.this, CoverFlowActivity.class);
            intent.putExtra("ClassName", "action_bar_coverView_icon");
            startActivity(intent);
        }

        super.finish();
    }


}

This is GMCIntentService:

public class GCMIntentService extends GCMBaseIntentService {

    private static final String PROJECT_ID = "410016639123";

    private static final String TAG = "GCMIntentService";

    public GCMIntentService()
    {
        super(PROJECT_ID);
        Log.d(TAG, "GCMIntentService init");
    }


    @Override
    protected void onError(Context ctx, String sError) {
        // TODO Auto-generated method stub
        Log.d(TAG, "Error: " + sError);

    }

    @Override
    protected void onMessage(Context ctx, Intent intent) {

        Log.d(TAG, "Message Received");

        String message = intent.getStringExtra("message");

        sendGCMIntent(ctx, message);

    }


    private void sendGCMIntent(Context ctx, String message) {

        Intent broadcastIntent = new Intent();
        broadcastIntent.setAction("GCM_RECEIVED_ACTION");

        broadcastIntent.putExtra("gcm", message);

        ctx.sendBroadcast(broadcastIntent);

    }


    @Override
    protected void onRegistered(Context ctx, String regId) {
        // TODO Auto-generated method stub
        // send regId to your server
        Log.d(TAG, regId);

    }

    @Override
    protected void onUnregistered(Context ctx, String regId) {
        // TODO Auto-generated method stub
        // send notification to your server to remove that regId

    }

}

and manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="2"
    android:versionName="1"
    android:installLocation="auto">

    <uses-sdk
        android:minSdkVersion="12" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <permission android:name="pl.spot.p2a.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="pl.spot.p2a.permission.C2D_MESSAGE" /> 
    <!-- App receives GCM messages. -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <!-- GCM requires a Google account. -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <!-- Keeps the processor from sleeping when a message is received. -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />

    <uses-permission android:name="android.permission.READ_OWNER_DATA" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Holo"
        android:largeHeap="true" >
        <activity
            android:name="pdf.activities.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>





        <receiver android:name="com.google.android.gcm.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="com.example.test" />  
            </intent-filter>   
        </receiver>
        <service
            android:name="com.example.test">
        </service>
    </application>
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true" />

</manifest>

In logs I don’t get a api key.

This is log:
12-18 10:54:58.132: D/dalvikvm(4582): WAIT_FOR_CONCURRENT_GC blocked 0ms
12-18 10:54:58.192: D/dalvikvm(4582): GC_FOR_ALLOC freed 102K, 8% free 12264K/13319K, paused 14ms, total 14ms
12-18 10:54:58.192: I/dalvikvm-heap(4582): Grow heap (frag case) to 13.447MB for 614416-byte allocation
12-18 10:54:58.212: D/dalvikvm(4582): GC_CONCURRENT freed 1K, 8% free 12863K/13959K, paused 12ms+1ms, total 21ms
12-18 10:54:58.227: D/dalvikvm(4582): GC_FOR_ALLOC freed 0K, 8% free 12863K/13959K, paused 11ms, total 11ms
12-18 10:54:58.227: I/dalvikvm-heap(4582): Grow heap (frag case) to 15.789MB for 2457616-byte allocation
12-18 10:54:58.252: D/dalvikvm(4582): GC_CONCURRENT freed 0K, 7% free 15263K/16391K, paused 11ms+2ms, total 23ms
12-18 10:54:58.252: D/dalvikvm(4582): WAIT_FOR_CONCURRENT_GC blocked 6ms
12-18 10:54:58.277: D/GCMRegistrar(4582): resetting backoff for com.example.test
12-18 10:54:58.277: V/GCMRegistrar(4582): Registering app com.example.test of senders 410016639123
12-18 10:54:58.287: D/push(4582): Registration Acquired
12-18 10:54:58.302: D/dalvikvm(4582): Trying to load lib /data/data/pl.spot.p2a/lib/librdpdf.so 0x42818728
12-18 10:54:58.312: D/dalvikvm(4582): Added shared lib /data/data/pl.spot.p2a/lib/librdpdf.so 0x42818728
12-18 10:54:58.377: V/MainActivity(4582): getApplicationID1
12-18 10:54:58.377: V/MainActivity(4582): getAPPLICATION_ID1
12-18 10:54:58.377: V/generateTermsThumbs(4582): doc.open: /storage/sdcard0/pdf2app/1/terms.pdf
12-18 10:55:01.662: D/dalvikvm(4582): GC_CONCURRENT freed 997K, 12% free 15264K/17223K, paused 34ms+4ms, total 72ms
12-18 10:55:11.222: V/GCMBroadcastReceiver(4582): onReceive: com.google.android.c2dm.intent.REGISTRATION
12-18 10:55:11.222: V/GCMBroadcastReceiver(4582): GCM IntentService class: pl.spot.p2a.GCMIntentService
12-18 10:55:11.227: V/GCMBaseIntentService(4582): Acquiring wakelock

When I change in manifest line: android:name="com.example.test" on

android:name=".GCMIntentService" I get error:
12-18 11:04:10.412: E/AndroidRuntime(6424): FATAL EXCEPTION: main
12-18 11:04:10.412: E/AndroidRuntime(6424): java.lang.RuntimeException: Unable to instantiate service com.example.test.GCMIntentService: java.lang.ClassNotFoundException: pl.spot.p2a.GCMIntentService
12-18 11:04:10.412: E/AndroidRuntime(6424):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2388)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at android.app.ActivityThread.access$1600(ActivityThread.java:140)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at android.os.Looper.loop(Looper.java:137)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at android.app.ActivityThread.main(ActivityThread.java:4898)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at java.lang.reflect.Method.invokeNative(Native Method)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at java.lang.reflect.Method.invoke(Method.java:511)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at dalvik.system.NativeStart.main(Native Method)
12-18 11:04:10.412: E/AndroidRuntime(6424): Caused by: java.lang.ClassNotFoundException: com.example.test.GCMIntentService
12-18 11:04:10.412: E/AndroidRuntime(6424):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
12-18 11:04:10.412: E/AndroidRuntime(6424):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2385)
12-18 11:04:10.412: E/AndroidRuntime(6424):     ... 10 more

Could you tell me why?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T03:52:02+00:00Added an answer on June 16, 2026 at 3:52 am

    You must provide

    <service android:name="package_name.GCMIntentService" />
    

    instead of package name as you have provided in your manifest file.

    Here GCMIntentService is my service class.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have copied a hello world program in cuda using this site http://code.google.com/p/stanford-cs193g-sp2010/wiki/TutorialHelloWorld The
Hello I have this code class Triplets { public: int nVal1; int nVal2; NodeT
I have some python code for Google App Engine that responds with the string
I have this simple hello world version of a google map api javascript v3
I have this URL: http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world When I put it to the address bar in
Hello i have this Gmap v3 code that shown the multiple markers (20 markers)
Hello guys i have a little problem i get an error: File C:\Users\kokki\Desktop\gb1\main.py, line
i have this code to show the info window in google maps var infoWindow
I have this code: $abc = ' Hello Guys , Goodmorning'; I want to
In Google App Engine, I have the following code which shows a simple HTML

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.