其他程序中禁止或者自动下拉状态栏

4.3android源码

需求一:在其他程序中通过触发使状态栏自动下拉

解决:在触发事件中

mStatusBarManager = (StatusBarManager)this.getSystemService(Context.STATUS_BAR_SERVICE);

mStatusBarManager.expandNotificationsPanel();

解析:

 mStatusBarManager.expandNotificationsPanel()方法最终会调用CommandQueue.Callbacks接口的animateExpandNotificationsPanel()在PhoneStatusBar中实现通知栏自动下拉。

Context.STATUS_BAR_SERVICE =“statusbar”;


需求二:在其他程序中通过触发禁止状态栏下拉功能

int flags = StatusBarManager.DISABLE_NONE;

mStatusBarManager = (StatusBarManager)this.getSystemService(Context.STATUS_BAR_SERVICE);

flags |= StatusBarManager.DISABLE_EXPAND;

mStatusBarManager.disable(flags);

若要再恢复下拉,只需public static final int DISABLE_NONE = 0x00000000;将flags置为此。


OTHER 1:

StatusBarManager.DISABLE_RECENT 

StatusBarManager.DISABLE_NOTIFICATION_TICKER

StatusBarManager.DISABLE_SEARCH


OTHER 2:

自写个activity,通过其button组件的onClick方法出发状态栏自动下拉:

核心代码:

private void openExpand() {

try{

Object statuabarService = getSystemService("statusbar");

Class<?> statusbarManager = Class.forName(“android.app.StatusBarManager”);

Method expandStatusbar = null;

if (statuabarService !=null){

expandStatusbar=statusbarManager.getMethod("expandNotificationsPanel");

expandStatusbar.setAccessible(true);

expandStatusbar.invoke(statuabarService); 

}

}catch(Exception e){

e.printStackTrace();
}

}

实际code时误写:

。。。。。

if (statuabarService !=null){

expandStatusbar=statusbarManager.getMethod("expandNotificationsPanel");

}

expandStatusbar.setAccessible(true);

expandStatusbar.invoke(statuabarService); 

。。。。

这样statuabarService =null,在expandStatusbar.setAccessible(true)会报空指针异常!


StatusBarManager类中提供的其他可调用方法:

collapsePanels() : 调用CommandQueue.Callbacks接口的animateCollapsePanels()在PhoneStatusBar中实现收起下拉的通知栏。

另外API>=4.3以上增加了expandSettingsPanel()方法用于实现设置通知栏的显示。



相关链接文章“statusbar—状态栏对外

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值