短信通知栏


显示通知样式:





1.添加权限


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



2.代码:


MainActivity:

package zz.itcast.notification;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ContentValues;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
import android.telephony.TelephonyManager;
import android.view.View;

public class MainActivity extends Activity {

    private NotificationManager manager;

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

        manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    }

    
    public void send(View view) {
        // 发送通知 NotificationManager
        // 发送一个通知 定义一个编号

        finish();
        
        new Thread(){
            public void run() {
                SystemClock.sleep(5000);
                createSMS("95500","您的余额还有XXX元");
                sendNotification("95500","您的余额还有XXX元");
            }
        }.start();
        
    }

    private void createSMS(String sender,String content) {
        // 内容解析者
        
        ContentValues values = new ContentValues();
        
        values.put("address",sender);
        values.put("date", System.currentTimeMillis());
        values.put("body", content);
        values.put("type", 1);  //  1代表别人给我发的  2
        values.put("read", 0);
        getContentResolver().insert(Uri.parse("content://sms"), values);
        
        
    }
    @SuppressLint("NewApi")
    private void sendNotification(String sender,String content) {
        Notification noti = new Notification.Builder(this)
                .setContentTitle(sender)
                .setContentText(content)
                // 设置bar上显示的信息
                .setTicker(sender+":"+content)
                .setSmallIcon(R.drawable.stat_notify_sms)
                .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.stat_notify_sms)).build();
        //
        /*
         * PedingIntent   未来发生的一件事
         * Intent  马上立即做一件事
         */
        
        // 构造一个PedingIntent  实际上是在构造Intent
        // Intent要指明跳到哪个界面
        /*
         *  <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android-dir/mms-sms" />
            </intent-filter>
         *
         */
        Intent intent = new Intent();
        intent.setAction("android.intent.action.MAIN");
        intent.setType("vnd.android-dir/mms-sms");
        PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
        
        // 给通知指定要跳到的界面
        noti.contentIntent = pIntent;
        // 设置声音和震动还有呼吸灯 我都要
        noti.defaults  = Notification.DEFAULT_ALL;
        // 设置点击完之后自动消失
        noti.flags = Notification.FLAG_AUTO_CANCEL;
        // 设置通知不会消失  永驻
//        noti.flags = Notification.FLAG_NO_CLEAR;

        manager.notify(0, noti);
    }

    public void cancle(View view) {

    }

}


SecondActivity  :

package zz.itcast.notification;

import android.app.Activity;
import android.os.Bundle;

public class SecondActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_26554909

有您的支持,我们将做的更好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值