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.