禁止Android的StatusBar下拉


Android中有许多隐藏的Service,StatusBarManager就是其中一个,在Context.java中可以看到:


[java]
/**
 * Use with {@link #getSystemService} to retrieve a {@link
 * android.app.StatusBarManager} for interacting with the status bar.
 *
 * @see #getSystemService
 * @see android.app.StatusBarManager
 * @hide
 */ 
public static final String STATUS_BAR_SERVICE = "statusbar"; 

    /**
     * Use with {@link #getSystemService} to retrieve a {@link
     * android.app.StatusBarManager} for interacting with the status bar.
     *
     * @see #getSystemService
     * @see android.app.StatusBarManager
     * @hide
     */
    public static final String STATUS_BAR_SERVICE = "statusbar";

 

表明该service不对外提供,如果要调用的话需要在源码树上编译,才能调用到标记为@hide的接口。也可以将源码编译出来的classes.jar包添加到工程里面。

 


StatusBarManager提供了一些有用的接口,像disable()方法正是我们需要的,一些系统级的应用也是调用的该方法禁止StatusBar下拉的,比如电话、锁屏模块。想要调用该方法,你还需要以下权限:


[html]
<uses-permission android:name="android.permission.STATUS_BAR" /> 
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/> 

    <uses-permission android:name="android.permission.STATUS_BAR" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>


获取StatusBarManager实例,

 

[java]
mStatusBarManager = (StatusBarManager) mContext.getSystemService(Context.STATUS_BAR_SERVICE); 

mStatusBarManager = (StatusBarManager) mContext.getSystemService(Context.STATUS_BAR_SERVICE);
禁止下拉,


[java]
mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND); 

mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
解除禁止,


[java]
mStatusBarManager.disable(StatusBarManager.DISABLE_NONE); 

mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值