

ノーティフィケーションを表示するプログラムを作っているのですが
`notification.setLatestEventInfo`の部分がシンボルが見つからないためコンパイルできません。

[code]

    import android.support.v7.app.AppCompatActivity;
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Context;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    public class screen2 extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            String url = "http://www.google.com/";
            Uri uri= Uri.parse( url );
    
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
    
            NotificationManager nManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
            Notification notification = new Notification();
    
            notification.flags = Notification.FLAG_AUTO_CANCEL;
    
    
            notification.tickerText = "テキスト";
    
            // この部分のシンボルが見つからないためコンパイルできない
            notification.setLatestEventInfo(
                    getApplicationContext(),
                    "タイトル",
                    "メッセージ",
                    pendingIntent
            );
    
    
            nManager.notify(1,notification);
        }
    }
    
[/code]


CC BY-SA 3.0
2016-07-02T14:08:09.373
27273
2016-07-03T03:47:56.587
2016-07-03T03:47:56.587
5337
16796
question
android java
notification.setLatestEventInfoのシンボルが見つからないためコンパイルできない


`Notification`
については、[日本語のドキュメント](https://developer.android.com/guide/topics/ui/notifiers/notifications.html?hl=ja)が存在しますので、まずはそちらを参照してみてください。

バージョンごとに通知スタイルの追加や変更が行われ、それに伴い API も大きく変更が加えられてきました。`setLatestEventInfo()`
は非常にレガシーな方法で、長らく廃止メソッドになっていましたが、APIレベル23（Android Marshmallow）で削除されました。

このようなバージョンによる API の差異を吸収するために、サポートライブラリに `NotificationCompat` が用意されています。最新の
SDK バージョンにしか対応しないなどの稀なケースを除いては、基本的にはこちらを使用してみてください。

[code]

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("http", "www.google.com", null));
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
    
    NotificationManagerCompat manager = NotificationManagerCompat.from(this);
    Notification notification = new NotificationCompat.Builder(this)
            .setAutoCancel(true)
            .setContentTitle("title")
            .setContentText("content text")
            .setTicker("ticker text")
            .setSmallIcon(R.mipmap.ic_launcher)
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.notify_icon))
            .setContentIntent(pendingIntent)
            .build();
    
    manager.notify(0, notification);
    
[/code]


CC BY-SA 3.0
2016-07-02T14:50:11.987
27275
2016-07-02T14:50:11.987
5337
27273
answer