短信通知栏


显示通知样式:





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);
    }
}





扫描二维码关注公众号,回复: 1105363 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_26554909/article/details/77159928