0

アプリに通知を作成させようとしていますが、このコードでコンパイル エラーが発生します。

public void makeRing(Context context, boolean notify)
    {

        if (notify)
        {
            NotificationCompat.Builder mBuilder =
                    new NotificationCompat.Builder(context)
                    //.setSmallIcon(R.drawable.notification_icon)
                    .setContentTitle("My notification")
                    .setContentText("Hello World!");
            // Creates an explicit intent for an Activity in your app
            Intent resultIntent = new Intent(context, MainActivity.class);

            // The stack builder object will contain an artificial back stack for the
            // started Activity.
            // This ensures that navigating backward from the Activity leads out of
            // your application to the Home screen.
            TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
            // Adds the back stack for the Intent (but not the Intent itself)
            stackBuilder.addParentStack(MainActivity.class);
            // Adds the Intent that starts the Activity to the top of the stack
            stackBuilder.addNextIntent(resultIntent);
            PendingIntent resultPendingIntent =
                    stackBuilder.getPendingIntent(
                        0,
                        PendingIntent.FLAG_UPDATE_CURRENT
                    );
            mBuilder.setContentIntent(resultPendingIntent);
            NotificationManager mNotificationManager =
                (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            // mId allows you to update the notification later on (first number)
            mNotificationManager.notify(5954, mBuilder.build());

        }

これは、Android Developers サイトから直接取得したコードです。エラーは、「TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);」という行にあります。ここで、create に下線が引かれ、「メソッド create(Context) はタイプ TaskStackBuilder に対して未定義です」と表示されます。

また、最後の行の build() には下線が引かれ、「メソッド build() は NotificationCompat.Builder 型に対して未定義です。

これらを解決するにはどうすればよいですか?

4

2 に答える 2

3

サポート ライブラリを使用しても同じ問題が発生しました。そのメソッドを実装していないようです。動作するコードは次のとおりです。

NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_action_search)
        .setContentTitle("New search")
        .setContentText("Que hay de nuevo, viejo");
Intent resultIntent = new Intent(this, Temporal.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.from(this);
stackBuilder.addParentStack(Temporal.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(resultPendingIntent);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(112, builder.getNotification());

変更点は

TaskStackBuilder stackBuilder = TaskStackBuilder.from(this);

それ以外の

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);

manager.notify(112, builder.getNotification());

それ以外の

manager.notify(112, mBuilder.build());

編集済み

より良い解決策: 最新の Android サポート ライブラリをダウンロードするだけです。

于 2013-07-16T15:57:29.757 に答える
0

必要なバージョンのサポート ライブラリをダウンロードしていない可能性があります。ここですべてのバージョンを確認し、必要なバージョンを見つけることができます。

これは Notifications の変更を含む最新バージョンだと思います:

サポート パッケージ、リビジョン 10 (2012 年 8 月)

v4 サポート ライブラリの変更点:

    Added support for notification features introduced in Android 4.1 (API level 16) with additions to NotificationCompat.

ただし、念のため、最新バージョンをダウンロードできる可能性があります。

于 2013-03-25T03:25:06.573 に答える