您的位置:首页 > 其它

如何分析是那个应用导致状态栏消失

2017-02-14 10:32 387 查看
如何分析是那个应用导致状态栏消失

状态栏主要的几个控制类中需要增加log如下,再根据pid去查是那个进程.

StatusBarManager.java

public void disable(int what) {

try {

final IStatusBarService svc = getService();

if (svc != null) {

if ( (what & DISABLE_EXPAND) != 0 ) {

Slog.d("StatusBarManager", "disable status bar , call from" , new RuntimeException("disable"));

}

svc.disable(what, mToken, mContext.getPackageName());

}

} catch (RemoteException ex) {

// system process is dead anyway.

throw new RuntimeException(ex);

}

}


StatusBarManagerService.java

private void disableLocked(int userId, int what, IBinder token, String pkg) {

// It's important that the the callback and the call to mBar get done

// in the same order when multiple threads are calling this function

// so they are paired correctly.  The messages on the handler will be

// handled in the order they were enqueued, but will be outside the lock.

manageDisableListLocked(userId, what, token, pkg);


// Ensure state for the current user is applied, even if passed a non-current user.

final int net = gatherDisableActionsLocked(mCurrentUserId);

if (net != mDisabled) {

mDisabled = net;

mHandler.post(new Runnable() {

public void run() {

mNotificationDelegate.onSetDisabled(net);

}

});

if (mBar != null) {

        try {

/// M:[ALPS01673960] Fix User cannot drag down the notification bar.

Slog.d(TAG, "disable statusbar calling PID = " + Binder.getCallingPid());

mBar.disable(net);

} catch (RemoteException ex) {

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: