通知点击无效

时间:2018-03-30 16:48:03

标签: android notifications android-notifications

我正在生成通知。所以我创建了通知,当我点击按钮时我收到通知。现在,我创建了onclick功能和一些吐司,但是当我点击通知中的按钮时我得到了Toast消息。我不知道下面的代码有什么问题。所以请帮助。谢谢你们。

这是我的广播活动

public class NotificationBroadcast extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(NotificationGenerator.NOTIFY_PLAY))
        {
            Toast.makeText(context,"NOTIFY PLAY",Toast.LENGTH_LONG).show();
        }

        if(intent.getAction().equals(NotificationGenerator.NOTIFY_PAUSE))
        {
            Toast.makeText(context,"NOTIFY PAUSE",Toast.LENGTH_LONG).show();
        }

        if(intent.getAction().equals(NotificationGenerator.NOTIFY_NEXT))
        {
            Toast.makeText(context,"NOTIFY NEXT",Toast.LENGTH_LONG).show();
        }

        if(intent.getAction().equals(NotificationGenerator.NOTIFY_DELETE))
        {
            Toast.makeText(context,"NOTIFY DELETE",Toast.LENGTH_LONG).show();
        }

        if(intent.getAction().equals("com.example.murarilal.atry.previous"))
        {
            Toast.makeText(context,"NOTIFY PREVIOUS",Toast.LENGTH_LONG).show();
        }


    }
}

这是通知构建器活动

public class NotificationGenerator{

    public static final String NOTIFY_PREVIOUS="com.example.murarilal.atry.previous";
    public static final String NOTIFY_DELETE="com.example.murarilal.atry.delete";
    public static final String NOTIFY_PAUSE="com.example.murarilal.atry.pause";
    public static final String NOTIFY_PLAY="com.example.murarilal.atry.play";
    public static final String NOTIFY_NEXT="com.example.murarilal.atry.next";
    private static final int NOTIFICATION_ID_OPEN_ACTIVITY=1;
    private static String ID = "default";

    public static void openActivityNotification(Context context) {
        RemoteViews expandView=new RemoteViews(context.getPackageName(),R.layout.notification);
        NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
        String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
        int requestID = (int) System.currentTimeMillis();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
            // Configure the notification channel.
            notificationChannel.setDescription("Channel description");
            notificationChannel.enableLights(true);
            notificationChannel.setLightColor(Color.RED);
            notificationChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000});
            notificationChannel.enableVibration(true);
            notificationManager.createNotificationChannel(notificationChannel);
        }
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context);
        notificationBuilder.setChannelId(ID);
        Intent notifyIntent=new Intent(context,BlankFragment2.class);
        notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
        PendingIntent pendingIntent=PendingIntent.getActivity(context,requestID,notifyIntent,PendingIntent.FLAG_UPDATE_CURRENT);
        notificationBuilder.setContentIntent(pendingIntent);

        Intent intent = new Intent(context, BlankFragment2.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
        stackBuilder.addParentStack(MainActivity.class);
        stackBuilder.addNextIntent(intent);

        notificationBuilder.setAutoCancel(true)
                .setDefaults(Notification.DEFAULT_ALL)
                .setWhen(System.currentTimeMillis())
                .setSmallIcon(R.drawable.ed)
                .setTicker("Hearty365")
                //     .setPriority(Notification.PRIORITY_MAX)
                .setContentTitle("try")
                .setCustomBigContentView(expandView)
                .setContentText("notification")
                .setContentInfo("Info");


        notificationManager.notify(NOTIFICATION_ID_OPEN_ACTIVITY, notificationBuilder.build());
    }


    public static void customBigNotification(Context context)
    {
        int requestID = (int) System.currentTimeMillis();
        RemoteViews expandView=new RemoteViews(context.getPackageName(),R.layout.notification);
        NotificationCompat.Builder nc=new NotificationCompat.Builder(context);
        NotificationManager nm=(NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
        Intent notifyIntent=new Intent(context,BlankFragment2.class);
        notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
        PendingIntent pendingIntent=PendingIntent.getActivity(context,requestID,notifyIntent,PendingIntent.FLAG_UPDATE_CURRENT);
        nc.setContentIntent(pendingIntent);
        nc.setSmallIcon(R.drawable.ic_play_circle_filled_black_24dp);
        nc.setAutoCancel(true);
        nc.setCustomBigContentView(expandView);
        nc.setContentTitle("music player");
        nc.setContentText("control audio");
        nc.getBigContentView().setTextViewText(R.id.songName,"shape of you");
        setListeners(expandView,context);
    }
    private static void setListeners(RemoteViews views, Context context)
    {
        int requestID = (int) System.currentTimeMillis();
        Intent previous= new Intent(NOTIFY_PREVIOUS);
        Intent next=new Intent(NOTIFY_NEXT);
        Intent delete=new Intent(NOTIFY_DELETE);
        Intent play=new Intent(NOTIFY_PLAY);
        Intent pause=new Intent(NOTIFY_PAUSE);


        PendingIntent pPrevious=PendingIntent.getBroadcast(context,requestID,previous,PendingIntent.FLAG_UPDATE_CURRENT);
        views.setOnClickPendingIntent(R.id.previous,pPrevious);

        PendingIntent pDelete=PendingIntent.getBroadcast(context,requestID,delete,PendingIntent.FLAG_UPDATE_CURRENT);
        views.setOnClickPendingIntent(R.id.cancel,pDelete);

        PendingIntent pNext=PendingIntent.getBroadcast(context,requestID,next,PendingIntent.FLAG_UPDATE_CURRENT);
        views.setOnClickPendingIntent(R.id.next,pNext);

        PendingIntent pPlay=PendingIntent.getBroadcast(context,requestID,play,PendingIntent.FLAG_UPDATE_CURRENT);
        views.setOnClickPendingIntent(R.id.play,pPlay);

        PendingIntent pPause=PendingIntent.getBroadcast(context,requestID,pause,PendingIntent.FLAG_UPDATE_CURRENT);
        views.setOnClickPendingIntent(R.id.play,pPause);


    }

}

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.murarilal.atry">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/mytheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".screen"
            android:label="@string/title_activity_screen"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".com.layout.blankFragment2"
            android:label="@string/hello_blank_fragment"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="com.exlayout.albumSongs"
            android:label="@string/title_activity_album_songs"
            android:theme="@android:style/Theme.Holo.Light.DarkActionBar" />
        <activity
            android:name="com.exlayout.Main2Activity"
            android:label="@string/title_activity_main2"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".Main2Activity"
            android:label="@string/title_activity_main2"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".albumSongs"
            android:label="@string/title_activity_album_songs"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".albumSong"
            android:label="@string/title_activity_album_song"
            android:theme="@android:style/Theme.Holo.Light.DarkActionBar" />
        <activity
            android:name=".BlankFragment2"
            android:label="@string/hello_blank_fragment"
            android:theme="@style/AppTheme.NoActionBar" />

        <receiver android:name=".NotificationBroadcast">
            <intent-filter>
                <action android:name="com.example.murarilal.atry.previous" />
                <action android:name="com.example.murarilal.atry.delete" />
                <action android:name="com.example.murarilal.atry.pause" />
                <action android:name="com.example.murarilal.atry.next" />
                <action android:name="com.example.murarilal.atry.play" />
            </intent-filter>
        </receiver>

        <activity
            android:name=".genreSongs"
            android:label="@string/title_activity_genre_songs"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="com.exlayout.genreSongs"
            android:label="@string/title_activity_genre_songs"
            android:theme="@android:style/Theme.Holo.Light.DarkActionBar" />
        <activity
            android:name=".artist_Songs"
            android:label="@string/title_activity_artist__songs"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="com.exlayout.artist_Songs"
            android:label="@string/title_activity_artist__songs"
            android:theme="@android:style/Theme.Holo.Light.DarkActionBar" />
        <activity
            android:name=".checkActivity"
            android:label="@string/title_activity_check"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
        <activity
            android:name=".favoutitesActivity"
            android:label="@string/title_activity_favoutites"
            android:theme="@style/AppTheme" />
        <activity
            android:name=".recent"
            android:label="@string/title_activity_recent"></activity>
    </application>

</manifest>

0 个答案:

没有答案