0

whenever i run this code in KITKAT , it crashes . any devices greater or equal 5.0 (LOLIPOP) works fine.

 ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
        if (cn.getClassName().equalsIgnoreCase("com.mypackage.Login") || cn.getClassName().equalsIgnoreCase("com.mypackage.main.WaitForApproval")) {
            listner.setOnline();
        }

The error looks like:

java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in com.mypackage.util.broadcastreciever.InternetReciever@52887cd0
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:769)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5001)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.SecurityException: Permission Denial: getTasks() from pid=2479, uid=10059 requires android.permission.GET_TASKS
    at android.os.Parcel.readException(Parcel.java:1465)
    at android.os.Parcel.readException(Parcel.java:1419)
    at android.app.ActivityManagerProxy.getTasks(ActivityManagerNative.java:2537)
    at android.app.ActivityManager.getRunningTasks(ActivityManager.java:769)
    at android.app.ActivityManager.getRunningTasks(ActivityManager.java:805)
    at com.mypackage.util.broadcastreciever.InternetReciever.onReceive(InternetReciever.java:36)
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:759)
    at android.os.Handler.handleCallback(Handler.java:733) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5001) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
    at dalvik.system.NativeStart.main(Native Method) 

so i added a new permission

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

This get task permission is depricated ref here https://developer.android.com/reference/android/Manifest.permission#GET_TASKS , and it works when i use this depricated permission , is the way to solve the problem? i am in dilemma.

Umesh Chakradhar
  • 151
  • 3
  • 13

0 Answers0