由于前面的文章已经提供过接口,所以这里就不在赘述了,只提最重要的一步
在frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java接收广播
filter.addAction("com.azt.hidebar");
filter.addAction("com.azt.unhidebar"); //IntentFilter加进去
else if (intent.getAction().equals("com.azt.hidebar")) {
mStatusBarHeight =0;
mNavigationBarHeightForRotationDefault[mPortraitRotation] =0;
mNavigationBarHeightForRotationDefault[mUpsideDownRotation] =0;
mNavigationBarHeightForRotationDefault[mLandscapeRotation] =0;
mNavigationBarHeightForRotationDefault[mSeascapeRotation] = 0;
mNavigationBarHeightForRotationInCarMode[mPortraitRotation] =0;
mNavigationBarHeightForRotationInCarMode[mUpsideDownRotation] =0;
mNavigationBarHeightForRotationInCarMode[mLandscapeRotation] =0;
mNavigationBarHeightForRotationInCarMode[mSeascapeRotation] = 0;
} else if (intent.getAction().equals("com.azt.unhidebar")) {//gaodz add
mStatusBarHeight= mContext.getResources().getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height);
mNavigationBarHeightForRotationDefault[mPortraitRotation] =
mNavigationBarHeightForRotationDefault[mUpsideDownRotation] =
mContext.getResources().getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_height);
mNavigationBarHeightForRotationDefault[mLandscapeRotation] =
mNavigationBarHeightForRotationDefault[mSeascapeRotation] = mContext.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.navigation_bar_height_landscape);
}