首页vns威尼斯城官网登入 › o)官方文档是这样解释的,  要使用消息通知

o)官方文档是这样解释的,  要使用消息通知

Android Notification 怎实现显示多个

void android.app.NotificationManager.notify(int id, Notification
notification)Id 别设置成一样的
 

notify消息通知插件,cordovaandroid
最近在学习用CORDOVA(PHONEGAP)结合SENCHA
TOUCH开发应用,想实现一个安卓下的消息通知功能,这...

@Override
protected void onStop() {
showNotification();
super.onStop();
}

          long when = System.currentTimeMillis();

Parameters
context The Context in which this PendingIntent should start the activity.
requestCode Private request code for the sender (currently not used).  现在不使用了
intent Intent of the activity to be launched.
flags May be FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT, or any of the flags as supported byIntent.fillIn() to control which unspecified parts of the intent that can be supplied when the actual send happens.

notification.flags =
Notification.FLAG_SHOW_LIGHTS;

android中状态栏通知的步骤

private NotificationManager notificationManager= (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);;//一会用到该属性,唤醒通知

直接给你写个方法吧,里面就是步骤,参数意义:
tickerText提示通知时的文本
contentTitle你拖动状态栏下来的时候,显示的标题
contentText你拖动状态栏下来的时候,显示的内容
vns威尼斯城官网登入,id 是一个标识,也许可以多个通知
resId 图片资源,通知前面的图片
private void showNotification(String tickerText, String contentTitle,
String contentText, int id, int resId){
//创建通知对象,前面是图片资源,后面参数是当前时间,表示马上接到通知
Notification notification = new Notification(resId,
tickerText, System.currentTimeMillis());
//PendingIntent 表示当你点击通知后,intent执行的内容
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
getIntent(), 0);
//通知显示内容
notification.setLatestEventInfo(this, contentTitle, contentText,
contentIntent);

//notification.defaults =
defaults;设置为震动,除震动外还有其他的,但是必须在唤醒前调用。

//唤醒
notificationManager.notify(id, notification);

}

不懂追问!
 

 

          mNotificationManager.notify(1, notification);

PendingIntent.getActivity(ctx,o,intent,o)官方文档是这样解释的:

 

cordova的android notify消息通知插件,cordovaandroid

最近在学习用CORDOVA(PHONEGAP)结合SENCHA
TOUCH开发应用,想实现一个安卓下的消息通知功能,这个可以通过CORDOVA的插件来实现。

插件目录结构如下:

notifyplugin

  • plugin.xml
  • www/notifysrv.js
  • src/android/NotifysrvPlugin.java
  • libs/android-support-v4.jar

先编写plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    id="com.elon.cordova.plugin" version="0.0.1">
    <name>NotifysrvPlugin</name>
    <description>NotifysrvPlugin Description</description>
    <author>elon</author>
    <license>Apache 2.0 License</license>
    <engines>
        <engine name="cordova" version=">=3.0.0" />
    </engines>
    <js-module src="www/notifysrv.js" name="notifysrv">
        <clobbers target="Notify" />
    </js-module>
    <platform name="android">
        <source-file src="src/android/NotifysrvPlugin.java" 
        target-dir="src/com/elon/cordova/plugin" />
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="NotifysrvPlugin">
                <param name="android-package" value="com.elon.cordova.plugin.NotifysrvPlugin"/>
            </feature>
        </config-file>
        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.VIBRATE" />
        </config-file>
    </platform>
</plugin>

NotifysrvPlugin.java

package com.elon.cordova.plugin;

import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.CordovaInterface;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Context;
import android.support.v4.app.NotificationCompat;

public class NotifysrvPlugin extends CordovaPlugin {
    public static final String TAG = "NotifysrvPlugin";
    public static final String iconname = "icon";//icon res name

    public NotificationManager nm;
    public Context m_context;
    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
        super.initialize(cordova, webView);
        m_context = this.cordova.getActivity().getApplicationContext();
        nm = (NotificationManager) m_context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
    }

    @Override
    public boolean execute(String action, JSONArray args, 
    CallbackContext callbackContext) throws JSONException {
        if ("send".equals(action)) {
            String title = args.getString(0);  
            String text = args.getString(1);  

            PendingIntent  m_PendingIntent=PendingIntent.getActivity(this.cordova.getActivity(),  
                    0, this.cordova.getActivity().getIntent(), 0);
            int iconResID = m_context.getResources().getIdentifier(iconname,"drawable", m_context.getPackageName());
            Notification notification = new NotificationCompat.Builder(m_context)
            .setContentTitle(title)
            .setContentText(text)
            .setDefaults(Notification.DEFAULT_ALL) //设置默认铃声,震动等
            .setSmallIcon(iconResID)
            .setContentIntent(m_PendingIntent)
            .setAutoCancel(true)
        //    .setLargeIcon(aBitmap)
            .build();

            nm.notify(1, notification);
            callbackContext.success();
            return true;
        }
        return false;
    }
}

notifysrv.js

var argscheck = require('cordova/argscheck');
var exec = require('cordova/exec');

var Notify = function() {};

Notify.prototype.send = function(message, success, error) {
    //argscheck.checkArgs('AFF', 'notify.send', arguments); 
    console.log("send notification["+message[1]+"]");
    if(!message)
        error && error("please input message");
    else
        exec(success, error, 'NotifysrvPlugin', 'send', message);
};

var notify = new Notify();
module.exports = notify;

将插件加入cordova工程的办法

进入CMD,进入cordova工程文件夹,然后输入如下命令

     cordova plugin add  [插件目录]

使用本插件的方法:

            var msg = ["新消息标题","新的消息内容"];
            Notify.send(msg,function(){
                console.log("成功");  
            },function(msg){  
                console.log(msg || "失败");  
            });  

 

常用字段:
contentIntent 设置PendingIntent对象,点击时发送该Intent
defaults 添加默认效果
flags 设置flag位,例如FLAG_NO_CLEAR等
icon 设置图标
sound 设置声音
tickerText 显示在状态栏中的文字
when 发送此通知的时间戳

          NotificationManager mNotificationManager =
(NotificationManager) getSystemService(ns);

个人水平有限,接触到的暂时是这么多,因此当我系统了解完了之后会对此做一个补充

c)手机振动,如:

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
clearNotification();
}

          Notification notification = new Notification(icon,
tickerText, when);

Notification 的使用需要以上四个步骤。

 
m_NotificationManager.cancel(0);   

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;

          CharSequence contentText = "我的通知栏展开详细内容";

Returns
  • Returns an existing or new PendingIntent matching the given
    parameters. May return null only if FLAG_NO_CREATE has been
    supplied.

 

一下摘自一个人的博客,只是比官方文档好理解点:

下面来谈谈notification,这个notification一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个快讯,这时手从上方滑动状态栏就可以展开并处理这个快讯。发现这个功能特别好用,所以我就根据我的理解来谈谈。摘自帮助文档
:
notification类表示一个持久的通知,将提交给用户使用NotificationManager。已添加的Notification.Builder,使其更容易构建通知。notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast
Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径。

先来区分以下状态栏和状态条的区别:

1、状态条就是手机屏幕最上方的一个条形状的区域;

在状态条有好多信息量:比如usb连接图标,手机信号图标,电池电量图标,时间图标等等;

2、状态栏就是手从状态条滑下来的可以伸缩的view;

在状态栏中一般有两类(使用FLAG_标记):

(1)正在进行的程序;

(2)是通知事件;

 

大概来描述创建一个Notification传送的信息有:

1、一个状态条图标;

2、在拉伸的状态栏窗口中显示带有大标题,小标题,图标的信息,并且有处理该点击事件:比如调用该程序的入口类;

3、闪光,LED,或者震动;

 

快速创建一个Notification的步骤简单可以分为以下四步:

第一步:通过getSystemService()方法得到NotificationManager对象;

第二步:对Notification的一些属性进行设置比如:内容,图标,标题,相应notification的动作进行处理等等;

第三步:通过NotificationManager对象的notify()方法来执行一个notification的快讯;

第四步:通过NotificationManager对象的cancel()方法来取消一个notificatioin的快讯;

 

下面对Notification类中的一些常量,字段,方法简单介绍一下:

常量:

DEFAULT_ALL 使用所有默认值,比如声音,震动,闪屏等等

DEFAULT_LIGHTS 使用默认闪光提示

DEFAULT_SOUNDS 使用默认提示声音

DEFAULT_VIBRATE 使用默认手机震动

说明】:加入手机震动,一定要在manifest.xml中加入权限:

<uses-permission android:name="android.permission.VIBRATE" />

以上的效果常量可以叠加,即通过

mNotifaction.defaults =DEFAULT_SOUND | DEFAULT_VIBRATE ;

或mNotifaction.defaults |=DEFAULT_SOUND
(最好在真机上测试,震动效果模拟器上没有)

 

//设置flag位

FLAG_AUTO_CANCEL 该通知能被状态栏的清除按钮给清除掉

FLAG_NO_CLEAR 该通知能被状态栏的清除按钮给清除掉

FLAG_ONGOING_EVENT 通知放置在正在运行

FLAG_INSISTENT 是否一直进行,比如音乐一直播放,知道用户响应

 

常用字段:

contentIntent 设置PendingIntent对象,点击时发送该Intent

defaults 添加默认效果

flags 设置flag位,例如FLAG_NO_CLEAR等

icon 设置图标

sound 设置声音

tickerText 显示在状态栏中的文字

when 发送此通知的时间戳

 

Notification.build构造Notification方法介绍:

void setLatestEventInfo(Context context ,
CharSequencecontentTitle,CharSequence contentText,PendingIntent
contentIntent)

 

功能:
显示在拉伸状态栏中的Notification属性,点击后将发送PendingIntent对象

参数: context 上下文环境

contentTitle 状态栏中的大标题

contentText 状态栏中的小标题

contentIntent 点击后将发送PendingIntent对象

说明:要是在Notification中加入图标,在状态栏和状态条中显示图标一定要用这个方法,否则报错!

 

最后说一下NotificationManager类的常用方法:

通过获取系统服务来获取该对象:

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

 

NotificationManager常用方法介绍:

public void cancelAll() 移除所有通知
(只是针对当前Context下的Notification)

public void cancel(int id) 移除标记为id的通知
(只是针对当前Context下的所有Notification)

public voidnotify(String tag ,int id, Notification notification)
将通知加入状态栏, 标签为tag,标记为id

public void notify(int id, Notification notification)
将通知加入状态栏,,标记为id

 

 

m_Notification.setLatestEventInfo(NotificationDemo.this,
"Button1", "Button1通知",m_PendingIntent );

/**
* 在状态栏显示通知
*/
private void showNotification(){
// 创建一个NotificationManager的引用
NotificationManager notificationManager = (NotificationManager)
this.getSystemService(android.content.Context.NOTIFICATION_SERVICE);

          CharSequence contentTitle = "我的通知栏标展开标题";

简单的说PendingIntent.getActivity()就是即将发生的intent.

long[] vibrate =
{0,100,200,300};

?
package com.ljq.activity;

  要使用消息通知,必须要用到两个类:NotificationManager和Notification,其他NotificationManager的初始化是用getSystemService方法,并且通过notify方法来向android系统发送消息栏通知和显示。

public void sendNotification(Context ctx,String message)
                {    
                    //get the notification manager
                    String ns = Context.NOTIFICATION_SERVERS;
                    NotificationManager nm = (Notification) ctx.getSystemService(ns);

                    //create notification object includes icon ,text ,the time to send
                    int icon = R.drawable.robot;
                    Charquence tickerText = "hello";
                    long when = System.currentTimeMills();//return the system current time in milliseconds  since 1970 

                    Notification notification = new Notification(icon,tickerText,when);

                    //set contextView by using setLastestEventInfo
                    Intent intent  = new Intent(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse("http://www.google.com"));
                    PendingIntent pi = PendingIntent.getActivity(ctx,0,intent,0);//explain it below
                    notification.setLastestEventInfo(ctx,"title","text",pi);

                    //send notification
                    nm.notify(1,notification);//通知加入状态栏,标记为id=1
                }//above all is how to use Notification

Notification提供了丰富的手机提示方式:

 

vns威尼斯城官网登入 1

notification.defaults
= Notification.DEFAULT_VIBRATE;

 

         
//用mNotificationManager的notify方法通知用户生成标题栏消息通知

public static PendingIntent getActivity (Context context, int requestCode, Intent intent, int flags)

Since: API Level
1

Retrieve a PendingIntent that will start a new activity, like calling
Context.startActivity(Intent). Note that the activity will be started
outside of the context of an existing activity, so you must use the
Intent.FLAG_ACTIVITY_NEW_TASK launch flag in the Intent.

notification.ledOffMS
= 1000;

 

        

 

这也就完成了,添加删除工作。

转载本站文章请注明出处:vns威尼斯城官网登入 http://www.tiec-ccpittj.com/?p=1283

上一篇:

下一篇:

相关文章