Android的谷歌应用程序有一个通知,显示当地的天气.如果您在通知上向左滑动,它会显示"时钟图标"-action(例如,贪睡),如下所示.
如果单击时钟,将打开以下下拉菜单:
这是android系统的一个功能,我想在我的应用程序中实现.它应该通过通知操作打开,我想设置自定义选项,我需要获取选定的值.
有谁知道如何实现它?
我正在开发一个项目,我需要注册 BroadcastReceiver 并从通知操作向其发送广播。如果我做错了什么明显的事情,请告诉我。我不希望接收器在清单中注册,因为我希望拥有访问多个局部变量的自定义 onRecieve 方法。
完整代码可在此处获取: https: //github.com/akirby/notificationTest
编辑: 根据Android文档(https://developer.android.com/guide/components/broadcasts.html),这是可能的,但我无法理解为什么这不起作用。
BroadcastReciever 局部变量
public BroadcastReceiver approveReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent){
notificationManager.cancel(notificationId);
String data = intent.getAction();
Toast.makeText(getApplicationContext(), data, Toast.LENGTH_LONG);
if(data != null && data.equals("com.myapp.Approve")){
mainText.setText("Approved");
}
else{
mainText.setText("Denied");
}
}
};
Run Code Online (Sandbox Code Playgroud)
登记:
registerReceiver(approveReceiver, new IntentFilter("com.myapp.Approve"));
Run Code Online (Sandbox Code Playgroud)
通知:
public void showNotification(){
Context appContext = getApplicationContext();
Intent approveIntent = new Intent(appContext, ApprovalReceiver.class);
approveIntent.setData(Uri.parse("Approve"));
approveIntent.setAction("com.myapp.Approve");
PendingIntent pendingIntent = PendingIntent.getBroadcast(appContext, 0, approveIntent, PendingIntent.FLAG_CANCEL_CURRENT);
Intent denyIntent = new Intent(appContext, ApprovalReceiver.class); …
Run Code Online (Sandbox Code Playgroud) android broadcastreceiver android-notifications notification-action
android ×3