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