Android 以编程方式展开所有通知或一个包通知

Android 以编程方式展开所有通知或一个包通知,android,Android,我在网上搜索了如何扩展通知栏,找到了不同API的一些答案,但都使用了行Object service=getSystemService statusbar,当我键入此行时,在状态栏表达式下会出现错误,以下是我的代码: try{ Object service = getSystemService("statusbar"); Class<?> statusbarManager = Class.forName("android.app.St

我在网上搜索了如何扩展通知栏,找到了不同API的一些答案,但都使用了行Object service=getSystemService statusbar,当我键入此行时,在状态栏表达式下会出现错误,以下是我的代码:

 try{
            Object service  = getSystemService("statusbar");
            Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
            Method expand = statusbarManager.getMethod("expand");
            expand.invoke(service);
        }
        catch(Exception ex) {
        }
在显示更多信息时出现此错误后:

此检查检查Android API调用,并确保将正确类型的资源传递给期望给定类型资源的int参数;它检查期望RGB颜色整数的API是否传递了实际颜色而不是颜色资源;它检查需要特定权限的API是否在清单中声明了权限;它检查预期落在给定范围内的参数是否实际存在;它检查调用方是否查看某些方法调用的结果,依此类推

我的完整代码:

public class NotificationService extends NotificationListenerService {
Context context;

@Override
public void onCreate() {
    super.onCreate();
    context = getApplicationContext();
}

@Override
public void onNotificationPosted(StatusBarNotification sbn) {
    try{
        Object service = getSystemService("statusbar");
        Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
        Method expand = statusbarManager.getMethod("expand");
        expand.invoke(service);
    }
    catch(Exception ex) {
    }
    String pack = sbn.getPackageName();
    String ticker = sbn.getNotification().tickerText.toString();
    Bundle extras = sbn.getNotification().extras;
    String title = extras.getString("android.title");
    String text = extras.getCharSequence("android.text").toString();
    Log.i("Package", pack);
    Log.i("Ticker", ticker);
    Log.i("Title", title);
    Log.i("Text", text);
    if ("com.whatsapp".equals(pack)) {
        Intent newIntent = new Intent("Msg");
        newIntent.putExtra("package", pack);
        newIntent.putExtra("ticker", ticker);
        newIntent.putExtra("title", title);
        newIntent.putExtra("text", text);
        LocalBroadcastManager.getInstance(context).sendBroadcast(newIntent);
    }
}

@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
    Log.i("Msg", "Notification Removed");
}
}


代码是一个在后台运行的服务,当收到服务获取详细信息的通知时,我通常会收到“来自XXX的2条消息”,而不是消息,因此我想扩展它们,结果就是这样:p我还尝试将其放在另一个类上,OnReceive广播中的活动本身,正如我在某个地方读到的,您不能在活动之外使用getSystemService,但仍然是一样的

您是否已在清单中添加权限

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

不要使用SDK中没有的任何东西,如果您希望将来出现严重问题,请使用您的代码,您已经warned@pskink所以我不能扩展通知栏?我看不到这样的SDKAPI@pskink我必须要它:\thx无论如何是的,没关系。
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />