简体   繁体   English

如何以编程方式扩展三星棒棒糖设备上的状态栏?

[英]How can I programmatically expand status bar on samsung lollipop devices?

I use this code to expand status bar: 我使用此代码来扩展状态栏:

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 );

With permission: 经许可:

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

It work well exept with the samsung lollipop device nothing happen. 它与三星棒棒糖设备很好地工作没有任何反应。 Does anyone know how to expand status bar on samsung lollipop device? 有谁知道如何在三星棒棒糖设备上扩展状态栏? Thanks! 谢谢!

Finally I found it but I need to use the Accessibility service: 最后我找到了它,但我需要使用辅助功能服务:

public class MyAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    Log.e("MyAccessibilityService", "get event");
    if (event.getEventType() == AccessibilityEvent.TYPE_TOUCH_INTERACTION_END) {
        switch (event.getAction()) {
            case 1:
                Log.e("MyAccessibilityService ", "home");
                performGlobalAction(AccessibilityService.GLOBAL_ACTION_HOME);
                break;
            case 2:
                Log.e("MyAccessibilityService ", "back");
                performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK);
                break;
            case 3:
                Log.e("MyAccessibilityService ", "power");
                performGlobalAction(AccessibilityService.GLOBAL_ACTION_POWER_DIALOG);
                break;
            case 4:
                Log.e("MyAccessibilityService ", "noti");
                performGlobalAction(AccessibilityService.GLOBAL_ACTION_NOTIFICATIONS);
                break;

        }


    }
}

Fire even: 火甚至:

AccessibilityEvent event1 = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_TOUCH_INTERACTION_END);
        event1.setClassName(className);
        event1.getText().add("noti");
        event1.setAction(4);
        event1.setPackageName(packageName);
        event1.setEnabled(true);
        AccessibilityManager manager = (AccessibilityManager)context.getSystemService(Context.ACCESSIBILITY_SERVICE);
        AccessibilityRecordCompat recordCompat = AccessibilityEventCompat.asRecord(event1);
        recordCompat.setSource(v);
        if (Utility.isAccessibilityEnable(context)) {
            manager.sendAccessibilityEvent(event1);
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在棒棒糖版本的状态栏中提取通知文本? - How can I extract the notification text in the Status Bar in lollipop version? 如何以编程方式在Android应用程序中展开通知栏? - How can I programmatically expand the notifications bar in my android app? AlarmManager 不适用于 Lollipop 中的三星设备 - AlarmManager not working on Samsung devices in Lollipop 如何以编程方式运行Lollipop的静音/静音设备? - How to programmatically Mute/Silent devices running Lollipop? 如何获取三星银河中状态栏的高度,以用于设置Andengine相机的尺寸? - How can I get the height of the status bar in a samsung galaxy to use to set an Andengine camera's size? Android - 以编程方式更改pre-lollipop设备上的状态栏颜色 - Android - Change status bar color on pre-lollipop devices programatically 如何以编程方式杀死三星设备上的后台进程 - How to kill background processes on Samsung devices programmatically 如何在三星设备中以编程方式启用自动启动选项? - How to Enable Autostart option programmatically in Samsung devices? 如何在奇巧上获取棒棒糖状态栏 - How to get lollipop status bar on kitkat 如何在Chrome中使用Samsung Note设备的笔压力? - How can I use Samsung Note devices' pen pressure in Chrome?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM