当前位置: 代码迷 >> 综合 >> Android中使用通知(Notification)功能(包含2.3以及4.0以上版本)
  详细解决方案

Android中使用通知(Notification)功能(包含2.3以及4.0以上版本)

热度:78   发布时间:2023-12-04 19:23:38.0

功能概述:包含2.3以及4.0以上版本,实现通知的下发,点击通知能自动调用系统自带的电话呼叫功能,对10086进行呼叫

1.配置AndroidManifest.xml清单文件,开启对应的权限

<!-- 开启呼叫权限 --><uses-permission android:name="android.permission.CALL_PHONE"/><!-- 开启手机振动权限 --><uses-permission android:name="android.permission.VIBRATE"/>

2.activity_main.xml文件中

<!-- 发送通知2.3版本 --><Buttonandroid:id="@+id/btnNotification"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="22dp"android:onClick="send2_3"android:text="发送通知(2.3版本)" /><!-- 发送通知4.0以上版本 --><Buttonandroid:id="@+id/btnNotification1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/btnNotification"android:layout_centerHorizontal="true"android:layout_marginTop="41dp"android:onClick="send"android:text="发送通知(4.0以上版本)" />

3.MainActivity.java文件中

package com.t20.notification;import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/*** 发送通知2.3版本* * @param v*/public void send2_3(View v) {// 获取通知的系统服务NotificationManager manage = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);// 定义通知的对象// 第一个参数:图标(自定义)// 第二个参数:提示文字(缩略文字,收到通知但是没有点击查看的时候显示提示文字)// 第三个参数:设置通知提示的时间(可以设置延迟显示)Notification notification = new Notification(R.drawable.ic_launcher,"收到一条通知", System.currentTimeMillis());// 隐式意图,达到点击通知后自动拨打10086的效果Intent intent = new Intent();intent.setAction(intent.ACTION_CALL);intent.setData(Uri.parse("tel:10086"));// 创建意图// 第一个参数:上下文// 第二个参数:请求码// 第三个参数:显示的次数PendingIntent contentIntent = PendingIntent.getActivity(MainActivity.this, 100, intent, PendingIntent.FLAG_ONE_SHOT);// 设置通知的内容// 第一个参数:上下文// 第二个参数:标题// 第三个参数:内容// 第四个参数:意图notification.setLatestEventInfo(MainActivity.this, "我是标题", "我是内容",contentIntent);// 第一个参数:该通知的id(必须唯一)// 第二个参数:通知的对象manage.notify(1, notification);}/*** 发送通知4.0以上版本* * @param v*/public void send(View v) {// 获得通知的系统服务NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);// 隐式意图,达到点击通知后自动拨打10086的效果Intent intent = new Intent();intent.setAction(intent.ACTION_CALL);intent.setData(Uri.parse("tel:10086"));// 创建意图// 第一个参数:上下文// 第二个参数:请求码// 第三个参数:显示的次数PendingIntent contentIntent = PendingIntent.getActivity(MainActivity.this, 100, intent, PendingIntent.FLAG_ONE_SHOT);// 定义通知对象并设置一系列参数//setLights()用于设置LED灯闪烁,提示用户去查看,参数一:LED灯的颜色;参数二:LED灯亮起的时长;参数三:LED灯暗去的时长//setVibrate()用于设置通知到来的时候让手机振动,下标为0的值表示手机静止的时长,下标为1的值表示手机振动的时长,下标为2的值又表示手机静止的时长,以此类推Notification notification = new NotificationCompat.Builder(this).setContentTitle("我是通知的标题").setContentText("我是通知的内容").setWhen(System.currentTimeMillis()).setSmallIcon(R.drawable.ic_launcher).setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher)).setContentIntent(contentIntent).setLights(Color.GREEN, 1000, 1000).setVibrate(new long[]{0,1000,1000,1000}).build();manager.notify(2, notification);}
}




  相关解决方案