0

こんにちは私は私のアプリaacplayerが私のギャラクシーs3でうまく機能していますが、アンドロイド2.3.4のギャラクシーエースでは私のアプリがクラッシュしますが、コードから通知マネージャーを削除すると、それは完璧に機能します。

これが私の通知マネージャーのコードです:

public void playerMetadata(final String key, final String value) {
        TextView tv = null;

        if ("StreamTitle".equals(key) || "icy-name".equals(key)
                || "icy-description".equals(key)) {
            tv = txtMetaTitle;
        } else if ("icy-url".equals(key)) {
            tv = txtMetaUrl;
        } else
            return;

        final TextView ftv = tv;

        uiHandler.post(new Runnable() {
            public void run() {
                ftv.setText(value);
                int NOTIFICATION_ID = 1;
                String ns = Context.NOTIFICATION_SERVICE;
                Context context = getApplicationContext();

                NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
                int icon = R.drawable.notificacion;
                long when = System.currentTimeMillis();
                CharSequence tickerText = "Reproduciendo...";
                Notification notification = new Notification(icon, tickerText,
                        when);
                RemoteViews contentView = new RemoteViews(getPackageName(),
                        R.layout.notification);
                contentView.setImageViewResource(R.id.icon, R.drawable.notificacion);
                contentView.setTextViewText(R.id.title_text, txtMetaTitle
                        .getText().toString());

                contentView.setTextViewText(R.id.message_text, txtMetaUrl
                        .getText().toString());

                notification.contentView = contentView;
                Intent notificationIntent = new Intent(AACPlayerActivity.this,
                        Principal.class);

                // Intent notificationIntent = new Intent(this,
                // Principal.class);
                PendingIntent contentIntent = PendingIntent.getActivity(
                        context, 0, notificationIntent, 0);

                // PendingIntent contentIntent = PendingIntent.getActivity(this,
                // 0, notificationIntent, 0);
                notification.contentIntent = contentIntent;
                notification.flags |= Notification.FLAG_ONGOING_EVENT;
                mNotificationManager.notify(NOTIFICATION_ID, notification);
            }
        });
    }

ギャラクシーS3でうまく機能する理由はわかりませんが、ギャラクシーエースではうまくいかないのですが、どうすれば修正できますか。

どうもありがとうございます。

編集:

logcat:

E/AndroidRuntime(16846): android.app.RemoteServiceException: Bad notification posted from package com.spoledge.aacplayer: Couldn't expand RemoteViews for: StatusBarNotification(package=com.spoledge.aacplayer id=1 tag=null notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x2))

これをコードに追加すると、次のようになります。

notification.setLatestEventInfo(context, 
txtMetaTitle.getText().toString(), 
txtMetaUrl.getText().toString(), contentIntent);

通知は問題なく機能しますが、これで通知を表示する必要があります。

contentView.setTextViewText(R.id.title_text, txtMetaTitle
                        .getText().toString());

                contentView.setTextViewText(R.id.message_text, txtMetaUrl
                        .getText().toString());

そのtxtmetatitleフィールドにはマーキーがありますが、notification.setLatestEventの前に投稿されたその行を追加すると、クラッシュすることなく機能しますが、マーキーを正しく実行できません

4

0 に答える 0