无法打开从可穿戴模拟器到手机的通知

时间:2015-11-17 15:43:12

标签: java android android-studio wear-os android-wear-notification

MobileActivity.java

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
//import android.support.v4.app.NotificationCompat;
//import android.support.v4.app.NotificationManagerCompat;
//import android.support.v4.app.TaskStackBuilder;


import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;

import android.support.v4.app.TaskStackBuilder;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MobileActivity extends Activity {

    private NotificationCompat.Builder notification_builder;
    private NotificationManagerCompat notification_manager;
    Button button1;


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



    public void showNotification (View v){



        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setContentTitle("Notification");
        builder.setSmallIcon(R.drawable.common_google_signin_btn_icon_dark);
        builder.setContentText("This took lot of effort");
        builder.setDefaults(Notification.DEFAULT_SOUND);
        Intent intent = new Intent (this,NotificationActivity.class);
        TaskStackBuilder stackBuilder=TaskStackBuilder.create(this);
        stackBuilder.addParentStack(NotificationActivity.class);
        stackBuilder.addNextIntent(intent);
        PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(pendingIntent);
        NotificationManager NM =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        NM.notify(0, builder.build());


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_mobile, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

NotificationActivity.java

package com.example.kaushikshanmugam.lab07_6312;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.view.View;
import android.content.Intent;
import android.app.Activity;
import android.widget.TextView;

public class NotificationActivity extends Activity {


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


        Button edit = (Button) findViewById(R.id.button2);
        edit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(NotificationActivity.this, MobileActivity.class);
                startActivity(intent);
                finish();

            }
        });
    }
}

这是我的移动活动和通知活动代码。通知会在磨损模拟器上弹出,但是当尝试从磨损打开到手机时应用程序崩溃。

1 个答案:

答案 0 :(得分:0)

这是一个有效的代码。

NotificationManager mNotificationManager = (NotificationManager)
        this.getSystemService(Context.NOTIFICATION_SERVICE);

Intent resultIntent = new Intent(this, SCNotifListActivity.class);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
//action for google wear
NotificationCompat.Action action = new NotificationCompat.Action(R.drawable.sc_app_icon,getString(R.string.app_name), resultPendingIntent);
NotificationCompat.Builder mBuilder =
        new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.notification_icon)
                .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                .setContentTitle(getApplicationContext().getString(R.string.app_name))
                .setContentText(message).setNumber(count).setAutoCancel(true)
                .extend(new NotificationCompat.WearableExtender().addAction(action));
mBuilder.setContentIntent(resultPendingIntent);
mNotificationManager.notify(0, mBuilder.build());