You are registering in your constructor. I think you need to register in onCreate. You appear to not have a context when your constructor is called.
On Wed, Oct 3, 2012 at 9:17 PM, Subodh Nijsure <subodh.nijs...@gmail.com>wrote: > Hello Robert, > > Below is the stack trace that I see when system catches the exception: > > Not sure if you had any chance glancing at my sample code on original > email, and see if anything obviously wrong there? > > I/System.out(12738): java.lang.NullPointerException > I/System.out(12738): at > android.content.ContextWrapper.registerReceiver(ContextWrapper.java:341) > I/System.out(12738): at > com.mycompany.ScsService.ScsService.<init>(ScsService.java:50) > I/System.out(12738): at java.lang.Class.newInstanceImpl(Native Method) > I/System.out(12738): at java.lang.Class.newInstance(Class.java:1319) > I/System.out(12738): at > android.app.ActivityThread.handleCreateService(ActivityThread.java:2234) > I/System.out(12738): at > android.app.ActivityThread.access$1600(ActivityThread.java:123) > I/System.out(12738): at > android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201) > I/System.out(12738): at > android.os.Handler.dispatchMessage(Handler.java:99) > I/System.out(12738): at android.os.Looper.loop(Looper.java:137) > I/System.out(12738): at > android.app.ActivityThread.main(ActivityThread.java:4424) > I/System.out(12738): at java.lang.reflect.Method.invokeNative(Native > Method) > I/System.out(12738): at java.lang.reflect.Method.invoke(Method.java:511) > I/System.out(12738): at > > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) > I/System.out(12738): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) > I/System.out(12738): at dalvik.system.NativeStart.main(Native Method) > > -Subodh > > On Wed, Oct 3, 2012 at 7:39 AM, Robert Greenwalt <rgreenw...@google.com> > wrote: > > Checking network types explicitly like this is bad - what happens if the > > device is connected through a bluetooth tether or via ethernet adapter? > > > > You could use getActiveNetworkInfo() and check it's connection, but this > is > > still polling. If you need to get notified when a connection comes or > goes > > (have something to do on next connect, for example) The > CONNECTIVITY_ACTION > > broadcast intent is the way to go. Note that this can be chatty - there > are > > several secondary networks that currently cause this broadcast that you > may > > have to weed out. You should use getActiveNetworkInfo in your handler to > > find the state that applies to you. > > > > Can you post the stack trace of the NPE? > > > > R > > > > > > On Wed, Oct 3, 2012 at 5:46 AM, Rahul Kaushik <rahulkaushi...@gmail.com> > > wrote: > >> > >> hi subodh > >> > >> try this > >> > >> package com.FranConnectMobile; > >> > >> import java.io.BufferedReader; > >> import java.io.InputStreamReader; > >> import java.net.URL; > >> import android.app.Activity; > >> import android.content.Context; > >> import android.net.ConnectivityManager; > >> > >> > >> > >> > >> public class chkInternet extends Activity > >> { > >> public boolean isInternetAvailable(Context context){ > >> ConnectivityManager connec = (ConnectivityManager) > >> context.getSystemService(Context.CONNECTIVITY_SERVICE); > >> android.net.NetworkInfo wifi = > >> connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI); > >> android.net.NetworkInfo mobile = > >> connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); > >> > >> if(wifi.isConnected() || mobile.isConnected()){ > >> // Check for web site > >> try{ > >> // Create a URL for the desired page > >> URL url = new URL("http://www.google.com"); > >> // Read all the text returned by the server > >> BufferedReader in = new BufferedReader(new > >> InputStreamReader(url.openStream())); > >> in.close(); > >> return true; > >> } catch (Exception e) { > >> return false; > >> } > >> } > >> > >> return false; > >> } > >> > >> } > >> > >> TX > >> RK > >> > >> On Wed, Oct 3, 2012 at 6:08 PM, Subodh Nijsure < > subodh.nijs...@gmail.com> > >> wrote: > >>> > >>> Hello, > >>> > >>> I am trying to implement a service that is supposed to download stuff > >>> from a cloud service. So I want this service to be notified whenever > >>> phone/tablet looses network connectivity. > >>> > >>> > >>> So I implemented code that looks like this: > >>> > >>> receiver = new ConnectivityReceiver(); > >>> filter = new IntentFilter(); > >>> > >>> filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); > >>> try { > >>> Intent i = registerReceiver(receiver, > >>> filter); > >>> } > >>> catch (Exception e) { > >>> .... > >>> } > >>> However when I have this code in a class that extends a Service > >>> registerReciver always throws a NullPointerException. > >>> > >>> However the same code in a class that extends an activity does not > throw > >>> such an exception. I have attached my manifest file and the full code > for > >>> the service template. Would appreciate any pointers as to why this > works in > >>> activity and not in a service. > >>> > >>> Or is there any better way for a service that run in the background to > >>> know when device looses/gains (IP) network connectivity? > >>> > >>> Regards, > >>> -Subodh > >>> > >>> -- > >>> You received this message because you are subscribed to the Google > >>> Groups "Android Developers" group. > >>> To post to this group, send email to > android-developers@googlegroups.com > >>> To unsubscribe from this group, send email to > >>> android-developers+unsubscr...@googlegroups.com > >>> For more options, visit this group at > >>> http://groups.google.com/group/android-developers?hl=en > >> > >> > >> -- > >> You received this message because you are subscribed to the Google > >> Groups "Android Developers" group. > >> To post to this group, send email to > android-developers@googlegroups.com > >> To unsubscribe from this group, send email to > >> android-developers+unsubscr...@googlegroups.com > >> For more options, visit this group at > >> http://groups.google.com/group/android-developers?hl=en > > > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-developers@googlegroups.com > > To unsubscribe from this group, send email to > > android-developers+unsubscr...@googlegroups.com > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en