use*_*854 29 android android-notification-bar
我到处搜索,但在SDK或Google上找不到任何关于如何执行此操作的内容.我知道这是可能的,因为所有自定义发射器都可以通过按钮按下(LauncherPro,ADW等)来完成.
谢谢.
Chr*_*Orr 35
您可以通过广播意图以编程方式关闭通知抽屉ACTION_CLOSE_SYSTEM_DIALOGS
.
这导致"临时系统对话"被驳回.从文档:
临时系统对话框的一些示例是通知窗口阴影和最近的任务对话框.
这不需要任何权限,并且自Android 1.0以来显然已经可用.
以下代码适用于运行Android 5.0的Nexus 4:
Intent closeIntent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
context.sendBroadcast(closeIntent);
Run Code Online (Sandbox Code Playgroud)
Jon*_*han 22
Ashwin的答案适用于4.2.2以下的Android版本(即低于版本17).在4.2.2中,"expand"方法更改为"expandNotificationsPanel".如果不对4.2.2及更高版本使用该方法名称,则会出现空指针异常.所以代码应该是:
Object sbservice = getSystemService( "statusbar" );
Class<?> statusbarManager = Class.forName( "android.app.StatusBarManager" );
Method showsb;
if (Build.VERSION.SDK_INT >= 17) {
showsb = statusbarManager.getMethod("expandNotificationsPanel");
}
else {
showsb = statusbarManager.getMethod("expand");
}
showsb.invoke( sbservice );
Run Code Online (Sandbox Code Playgroud)
并应添加适当的许可AndroidManifest
.
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
Run Code Online (Sandbox Code Playgroud)
显然,这不是已发布的API的一部分,因此不保证将来可以使用,许多人会建议不要这样做.
Ash*_*ngh 15
是的,您可以将此代码添加到您希望它执行的任何位置
Object sbservice = getSystemService( "statusbar" );
Class<?> statusbarManager = Class.forName( "android.app.StatusBarManager" );
Method showsb = statusbarManager.getMethod( "expand" );
showsb.invoke( sbservice );
Run Code Online (Sandbox Code Playgroud)
并添加此权限
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24260 次 |
最近记录: |