2017-04-18 6 views
2

私は、着信メッセージをユーザーに通知するために使用したい次の単純なクラスを持っています(私はアプリケーションの進行に合わせて進化させます)。コードされNotificationCompat.Builder:メソッドbuild()を解決できません

は、メソッドのビルド()ここで

を解決できません:

import android.app.Activity; 
import android.app.NotificationManager; 
import android.content.Context; 
import android.os.Bundle; 
import android.support.v4.app.NotificationCompat; 

public class UserNotificationActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void triggerNoti() { 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setContentTitle("My notification") 
       .setContentText("Hello World!"); 

     NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     mNotificationManager.notify(001, mBuilder.build()); 
    } 
} 
しかし、今のところ、最後の行に、次のエラーがあり、私はそれを実行することはできません

私はこれを試しましたsolutionしかし、変更はありません

私は間違って何をしていますか?

P.S.ターゲット(&分)SDK = 21

答えて

0

通知方法は、支持V4およびAPIレベル19 上方に少し変更されています。以下のコードブロックを試すことができます。

public void sendNotification(String message, String title, Intent intent, int not_id) { 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 
      PendingIntent.FLAG_ONE_SHOT); 
    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notification; 
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 
     notification 
       = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.mipmap.app_icon) 
       .setStyle(new NotificationCompat.BigTextStyle().bigText(message)) 
       .setContentTitle(title) 
       .setPriority(NotificationCompat.PRIORITY_HIGH) 
       .setContentText(message) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 

    } else { 
     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.app_icon); 
     notification 
       = new NotificationCompat.Builder(this) 
       .setContentTitle(title) 
       .setSmallIcon(R.drawable.small_icon) 
       .setStyle(new NotificationCompat.BigTextStyle().bigText(message)) 
       .setContentText(message) 
       .setAutoCancel(true) 
       //.setColor(Color.parseColor("#1a4994")) 
       .setPriority(NotificationCompat.PRIORITY_HIGH) 
       .setLargeIcon(bitmap) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 
    } 
    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(not_id, notification.build()); 
} 

NotificationChannelの更新:あなたのソリューションのための

public void initChannels(Context context) { 
    if (Build.VERSION.SDK_INT < 26) { 
     return; 
    } 
    NotificationManager notificationManager = 
      (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    NotificationChannel channel = new NotificationChannel("default", 
                  "Channel name", 
                  NotificationManager.IMPORTANCE_DEFAULT); 
    channel.setDescription("Channel description"); 
    notificationManager.createNotificationChannel(channel); 
} 
+0

おかげで、まだ私は同じエラーを持っていると悲しそうにかなり私のジレンマを解決していません!最後の行に同じエラーが表示されます –

+0

インポートを確認します。import android.support.v4.app.NotificationCompat; – ADM

+0

既にインポート済みです。 –

関連する問題