SimpAndroidFarme是近期脑子突然发热想做的android快速开发的框架,目标是模块化

常用的控件,方便新手学习和使用。也欢迎老鸟来一起充实项目:项目地址

今天的目标是做一个公共的提醒方法(响铃 , 震动 , 响铃+震动)

这个方法也是在app开发中会用到的。

目标使用方法:

 Button btn9 = (Button) findViewById(R.id.waring);
        btn9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               new Warning(MainActivity.this).ring("响铃提示");
            }
        });

只需要传递context 和 一点文字提示就行了,看起来使用很方便对吧!

目标是暴露三个接口分别是:

ring(响铃方法)

shock (震动方法)

both(震动+响铃)

主要使用Notification实现

下面上代码:

warning.java:

package com.wbnq.simpleandroidframe.plugs;

import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.net.Uri;
import android.util.Log;

import com.wbnq.simpleandroidframe.R;

/**
 * Created by guwei on 16-11-1.
 */
public class Warning {

    Context mContext;
    private NotificationManager mNManager;
    private Notification notify1;
    private static final int NOTIFYID_1 = 1;

    private static final String TAG = "Warning";

    public Warning(Context context) {
        this.mContext = context;

        mNManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
    }

    //响铃 .setSound(Uri.parse("android.resource://" + mContext.getPackageName() + "/" + R.raw.song))  //设置自定义的提示音
    public void ring(String ticker) {
        Notification.Builder mBuilder = new Notification.Builder(mContext);
        mBuilder.setSmallIcon(R.mipmap.ic_launcher)
                .setTicker(ticker)
                .setContentTitle(ticker)
                .setDefaults(Notification.DEFAULT_LIGHTS |Notification.DEFAULT_SOUND)    //设置默认的三色灯与振动器
                .setAutoCancel(true);
        Log.i(TAG, "ring: 响铃");
        notify1 = mBuilder.build();
        mNManager.notify(NOTIFYID_1, notify1);
    }

    //震动
    public void shock(String ticker){
        Notification.Builder mBuilder = new Notification.Builder(mContext);
        mBuilder.setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle(ticker)
                .setTicker(ticker)
                .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE)    //设置默认的三色灯与振动器
                .setAutoCancel(true);
        Log.i(TAG, "ring: 震动");
        notify1 = mBuilder.build();
        mNManager.notify(NOTIFYID_1, notify1);
    }

    //震动+响铃
    public void both(String ticker){
        Notification.Builder mBuilder = new Notification.Builder(mContext);
        mBuilder.setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle(ticker)
                .setTicker(ticker)
                .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE|Notification.DEFAULT_SOUND)    //设置默认的三色灯与振动器
                .setAutoCancel(true);
        Log.i(TAG, "ring: 响铃+震动");
        notify1 = mBuilder.build();
        mNManager.notify(NOTIFYID_1, notify1);
    }
}
View Code

相关文章: