Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected static Context getContext() {
- /* WATCH OUT, IT USES A PRIVATE VARIABLE*/
- Context context = null;
- try {
- Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
- Class[] params = new Class[0];
- Method currentActivityThread = activityThreadClass.
- getDeclaredMethod("currentActivityThread", params);
- Boolean accessible = currentActivityThread.isAccessible();
- currentActivityThread.setAccessible(true);
- Object obj = currentActivityThread.invoke(activityThreadClass);
- if (obj == null) {
- Log.d("ERROR", "The current activity thread is null!");
- return null;
- }
- currentActivityThread.setAccessible(accessible);
- Method getSystemContext = activityThreadClass.
- getDeclaredMethod("getSystemContext", params);
- accessible = getSystemContext.isAccessible();
- getSystemContext.setAccessible(true);
- context = (Context) getSystemContext.invoke(obj);
- getSystemContext.setAccessible(accessible);
- } catch (Exception e) {
- Log.d("ERROR", Log.getStackTraceString(e));
- }
- return context;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment