最全短信快速回复(源码),意外的惊喜

最后我们该如何学习?

1、看视频进行系统学习

这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

2、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

Spring源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Mybatis 3源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Redis学习笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Spring Boot核心技术-笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

3、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

return super.onCreateOptionsMenu(menu);

 }

 

public boolean onOptionsItemSelected(MenuItem item){

  super.onOptionsItemSelected(item);

  switch(item.getItemId()){

  case 0:

   openDialog();

   break;

  case 1:

   finish();

   break;

  }

  return true;

 }

 

private void openDialog(){

  new AlertDialog.Builder(this)

  .setTitle(R.string.about)

  .setMessage(R.string.message)

  .setPositiveButton(R.string.ok, 

   new DialogInterface.OnClickListener() {

  @Override

  public void onClick(DialogInterface dialog, int which) {

   

  }

 }

    ).show();

 }

}




短信回复对话框



package zdq.msg;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

public class SMSToast extends Activity {

private Button bt_send;

private Button bt_no;

private EditText et_addr;

private EditText et_msg;

private String addr;

@Override

 public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

     setContentView(R.layout.toast);

getview();

Intent intent = this.getIntent();

addr = (String) intent.getSerializableExtra(“addr”);

et_addr.setText(addr);

et_msg.setText(getResources().getString(R.string.msg_body));

getclick();

}

private void getview(){

bt_send=(Button)findViewById(R.id.bt_send);

bt_no=(Button)findViewById(R.id.bt_no);

et_addr=(EditText)findViewById(R.id.et_addr);

et_msg=(EditText)findViewById(R.id.et_msg);

}

private void getclick(){

bt_send.setOnClickListener(bt_send_onclick);

bt_no.setOnClickListener(bt_no_onclick);

}

private OnClickListener bt_send_οnclick=new OnClickListener(){

@Override

public void onClick(View v) {

SendSms(SMSToast.this,et\_addr.getText().toString(),et\_msg.getText().toString());

finish();

}

};

private OnClickListener bt_no_οnclick=new OnClickListener(){

@Override

public void onClick(View v) {

finish();

}

};

/**

* 发送短信

* @param context

* @param addre

* @param mess

*/

public void SendSms(Context context,String addre, String mess)

{

     SmsManager manager \= SmsManager.getDefault();

     manager.sendTextMessage(addre, null, mess, null, null);

}

}




短信接收类



package zdq.msg;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsMessage;

import android.util.Log;

public class SmsReceiver extends BroadcastReceiver{

private static final String strRes = “android.provider.Telephony.SMS_RECEIVED”;

private static final String TAG = “LocalService”;

private String addr;

@Override

public void onReceive(Context context, Intent intent) {

/*

* 判断是否是SMS_RECEIVED事件被触发

*/

if (intent.getAction().equals(strRes)) {

Bundle bundle = intent.getExtras();

if (bundle != null) {

Object\[\] pdus \= (Object\[\]) bundle.get("pdus");



SmsMessage\[\] msg \= new SmsMessage\[pdus.length\];



for (int i = 0; i < pdus.length; i++) {

 msg\[i\] \= SmsMessage.createFromPdu((byte\[\]) pdus\[i\]);

}



if(msg.length!=0){

 Log.i(TAG, "快速回复模式");

 for (SmsMessage currMsg : msg) {

  

  addr\=currMsg.getDisplayOriginatingAddress();

  

  Intent mBootIntent \= new Intent(context, SmsReceiver.class);

  mBootIntent \= new Intent(context, SMSToast.class); 

       mBootIntent.setAction("android.intent.action.MAIN"); 

       mBootIntent.addCategory("android.intent.category.LAUNCHER");  

        mBootIntent.setFlags(Intent.FLAG\_ACTIVITY\_NEW\_TASK); 

       

        Bundle mBundle \= new Bundle();  

        mBundle.putSerializable("addr",addr);

        mBootIntent.putExtras(mBundle);  

        

        context.startActivity(mBootIntent); 

} 

}

}

}

}

}




服务



package zdq.msg;

import android.app.Service;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.IBinder;

import android.util.Log;

import android.view.View;

import android.widget.Toast;

public class Smsservice extends Service {

private boolean isregiset = false;

 private static final String MSG\_RECEIVED = "android.provider.Telephony.SMS\_RECEIVED";

private static final String TAG = “LocalService”;

private SmsReceiver recevier;

@Override

public IBinder onBind(Intent arg0) {

Log.i(TAG, “onBind”);

return null;

}

@Override

public void onDestroy()

{

Log.i(TAG, “onDestroy”);

super.onDestroy();

unregisterReceiver(recevier);

}

@Override

public int onStartCommand(Intent intent, int flags, int startId)

{

Log.i(TAG, “onStartCommand”);

return super.onStartCommand(intent, flags, startId);

}

public void onStart(Intent intent,int startId){

Log.i(TAG, “onStart”);

super.onStart(intent, startId);

recevier=new SmsReceiver();

IntentFilter intentFilter = new IntentFilter(MSG_RECEIVED);

  intentFilter.setPriority(1000);//设置优先级最大

  registerReceiver(recevier , intentFilter);

  isregiset\=true;

}

public void onCreate(){

Log.i(TAG, “onCreate”);

super.onCreate();

}

 public void regiset(View v) {

     IntentFilter filter \= new IntentFilter(MSG\_RECEIVED);

     filter.setPriority(1000);//设置优先级最大

     registerReceiver(recevier, filter);

     isregiset \= true;

     Toast.makeText(this, "0", 0).show();

 }

 

public void unregiset(View v) {

     if (recevier != null && isregiset) {

         unregisterReceiver(recevier);

         isregiset \= false;

         Toast.makeText(this, "成功", 0).show();

     } else

         Toast.makeText(this, "失败", 0).show();

 }

}




mail.xml:



<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

 android:layout\_width\="fill\_parent"

 android:layout\_height\="fill\_parent"

 android:orientation\="vertical" >

 <Button

     android:id\="@+id/bt01"

     android:layout\_width\="fill\_parent"

     android:layout\_height\="wrap\_content"

最后

Java架构进阶面试及知识点文档笔记

这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理

image

Java分布式高级面试问题解析文档

其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!

image

互联网Java程序员面试必备问题解析及文档学习笔记

image

Java架构进阶视频解析合集

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理

[外链图片转存中…(img-WAftx7Fq-1715610424196)]

Java分布式高级面试问题解析文档

其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!

[外链图片转存中…(img-qA3KMYod-1715610424197)]

互联网Java程序员面试必备问题解析及文档学习笔记

[外链图片转存中…(img-qNehYmDG-1715610424197)]

Java架构进阶视频解析合集

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值