支持双卡手机,增加卡槽标识/运营商/手机号(如果能获取的话)
|
@ -73,15 +73,17 @@ Android手机监听短信并根据指定规则转发到其他手机、钉钉机
|
|||
| ![添加编辑发送方邮箱](pic/sendersetemail.png "添加编辑发送方邮箱") | ![添加编辑发送方Bark](pic/sendersetbark.png "添加编辑发送方Bark") |
|
||||
| ![添加编辑发送方网页通知](pic/sendersetwebnotify.png "添加编辑发送方网页通知") | ![添加编辑发送方企业微信群机器人](pic/sendersetqywechat.png "添加编辑发送方企业微信群机器人") |
|
||||
| ![状态栏运行状态](pic/taskbar.png "状态栏运行状态") | ![应用设置](pic/setting.png "应用设置") |
|
||||
| ![在线升级](pic/update.png "在线升级") | ![转发日志详情增加卡槽标识](pic/siminfo.png "转发日志详情增加卡槽标识") |
|
||||
| ![在线升级](pic/update.png "在线升级") | ![增加卡槽标识](pic/siminfo.png "增加卡槽标识") |
|
||||
|
||||
--------
|
||||
|
||||
## 更新记录:
|
||||
|
||||
> [v1.2.3](app/release/SmsForwarder_release_20210302_1.2.3.apk) 转发日志详情增加卡槽标识(SIM1 或 SIM2)
|
||||
> [v1.3.0](app/release/SmsForwarder_release_20210302_1.3.0.apk) 支持双卡手机,增加卡槽标识/运营商/手机号(如果能获取的话)
|
||||
|
||||
> [v1.2.2](app/release/SmsForwarder_release_20210302_1.2.2.apk) 短信模板增加卡槽标识(SIM-0_中国联通_Unknown 或 SIM-1_中国移动_+8615866666666)
|
||||
> [v1.2.3](app/release/SmsForwarder_release_20210302_1.2.3.apk) 【预发布】转发日志列表/详情增加卡槽标识(SIM1 或 SIM2)
|
||||
|
||||
> [v1.2.2](app/release/SmsForwarder_release_20210302_1.2.2.apk) 【预发布】短信模板增加卡槽标识(SIM1_中国联通_Unknown 或 SIM2_中国移动_+8615866666666)
|
||||
|
||||
> [v1.2.1](app/release/SmsForwarder_release_20210226_1.2.1.apk) 修复bark-server升级到2.0后的兼容性问题
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ android {
|
|||
applicationId "com.idormy.sms.forwarder"
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 28
|
||||
versionCode 9
|
||||
versionName "1.2.3"
|
||||
versionCode 10
|
||||
versionName "1.3.0"
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
}
|
||||
signingConfigs {
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"versionCode": 9,
|
||||
"versionName": "1.2.3",
|
||||
"outputFile": "SmsForwarder_release_20210302_1.2.3.apk"
|
||||
"versionCode": 10,
|
||||
"versionName": "1.3.0",
|
||||
"outputFile": "SmsForwarder_release_20210302_1.3.0.apk"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -37,7 +37,8 @@ public class SmsForwarderBroadcastReceiver extends BroadcastReceiver {
|
|||
String simInfoId = String.valueOf(capturedSimSlot(extras));
|
||||
Log.d("SIM_SLOT", " Slot Number " + simInfoId);
|
||||
Map<String, String> sim = MyApplication.SimInfo.get(simInfoId);
|
||||
String phoneNumber = "SIM-" + sim.get("sim_id") + "_" + sim.get("carrier_name") + "_" + sim.get("phone_number");
|
||||
int sim_id = Integer.parseInt(sim.get("sim_id")) + 1;
|
||||
String phoneNumber = "SIM" + sim_id + "_" + sim.get("carrier_name") + "_" + sim.get("phone_number");
|
||||
|
||||
List<SmsVo> smsVoList = new ArrayList<>();
|
||||
String format = intent.getStringExtra("format");
|
||||
|
|
|
@ -254,7 +254,6 @@ public class MainActivity extends AppCompatActivity implements ReFlashListView.I
|
|||
MyApplication.SimInfo.put(id, sim);
|
||||
}
|
||||
cursor.close();
|
||||
Log.d(TAG, String.valueOf(MyApplication.SimInfo.get("2").get("sim_id")));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.widget.TextView;
|
|||
|
||||
import com.idormy.sms.forwarder.R;
|
||||
import com.idormy.sms.forwarder.model.vo.LogVo;
|
||||
import com.idormy.sms.forwarder.utils.aUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -57,7 +58,9 @@ public class LogAdapter extends ArrayAdapter<LogVo> {
|
|||
viewHolder.tLogFrom = view.findViewById(R.id.tlog_from);
|
||||
viewHolder.tLogContent = view.findViewById(R.id.tlog_content);
|
||||
viewHolder.tLogRule = view.findViewById(R.id.tlog_rule);
|
||||
viewHolder.tLogTime = view.findViewById(R.id.tlog_time);
|
||||
viewHolder.senderImage = view.findViewById(R.id.tlog_sender_image);
|
||||
viewHolder.simImage = view.findViewById(R.id.tlog_sim_image);
|
||||
|
||||
// 将ViewHolder存储在View中(即将控件的实例存储在其中)
|
||||
view.setTag(viewHolder);
|
||||
|
@ -71,7 +74,9 @@ public class LogAdapter extends ArrayAdapter<LogVo> {
|
|||
viewHolder.tLogFrom.setText(logVo.getFrom());
|
||||
viewHolder.tLogContent.setText(logVo.getContent());
|
||||
viewHolder.tLogRule.setText(logVo.getRule());
|
||||
viewHolder.tLogTime.setText(aUtil.friendlyTime(logVo.getTime()));
|
||||
viewHolder.senderImage.setImageResource(logVo.getSenderImageId());
|
||||
viewHolder.simImage.setImageResource(logVo.getSimImageId());
|
||||
}
|
||||
|
||||
return view;
|
||||
|
@ -108,6 +113,8 @@ public class LogAdapter extends ArrayAdapter<LogVo> {
|
|||
TextView tLogFrom;
|
||||
TextView tLogContent;
|
||||
TextView tLogRule;
|
||||
TextView tLogTime;
|
||||
ImageView senderImage;
|
||||
ImageView simImage;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
package com.idormy.sms.forwarder.model.vo;
|
||||
|
||||
import com.idormy.sms.forwarder.R;
|
||||
|
||||
public class LogVo {
|
||||
private String from;
|
||||
private String content;
|
||||
|
@ -64,4 +66,17 @@ public class LogVo {
|
|||
public void setSenderImageId(int senderImageId) {
|
||||
this.senderImageId = senderImageId;
|
||||
}
|
||||
|
||||
public int getSimImageId() {
|
||||
if (this.simInfo == null) {
|
||||
return R.mipmap.sim1;
|
||||
}
|
||||
|
||||
String sim = this.simInfo.replace("-", "").substring(0, 4).toLowerCase();
|
||||
if (sim == "sim2") {
|
||||
return R.mipmap.sim2;
|
||||
} else {
|
||||
return R.mipmap.sim1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,10 +4,14 @@ import android.content.Context;
|
|||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Environment;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Properties;
|
||||
|
||||
public class aUtil {
|
||||
|
@ -53,4 +57,44 @@ public class aUtil {
|
|||
Integer versionCode = packInfo.versionCode;
|
||||
return versionCode;
|
||||
}
|
||||
|
||||
//友好时间显示
|
||||
public static String friendlyTime(String sdate) {
|
||||
|
||||
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Date time = null;
|
||||
try {
|
||||
time = sf.parse(sdate);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Log.d(TAG, time.getTime() + "");
|
||||
|
||||
//获取time距离当前的秒数
|
||||
int ct = (int) ((System.currentTimeMillis() - time.getTime()) / 1000);
|
||||
|
||||
if (ct == 0) {
|
||||
return "刚刚";
|
||||
}
|
||||
|
||||
if (ct > 0 && ct < 60) {
|
||||
return ct + "秒前";
|
||||
}
|
||||
|
||||
if (ct >= 60 && ct < 3600) {
|
||||
return Math.max(ct / 60, 1) + "分钟前";
|
||||
}
|
||||
if (ct >= 3600 && ct < 86400) {
|
||||
return ct / 3600 + "小时前";
|
||||
}
|
||||
if (ct >= 86400 && ct < 2592000) { //86400 * 30
|
||||
int day = ct / 86400;
|
||||
return day + "天前";
|
||||
}
|
||||
if (ct >= 2592000 && ct < 31104000) { //86400 * 30
|
||||
return ct / 2592000 + "月前";
|
||||
}
|
||||
|
||||
return ct / 31104000 + "年前";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/tlog_sender_image"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="10dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
|
@ -15,24 +28,27 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_marginStart="10dp"
|
||||
android:textColor="@android:color/black"
|
||||
android:textColorHighlight="@android:color/holo_red_dark" />
|
||||
android:layout_marginLeft="10dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tlog_rule"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginStart="10dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/tlog_sender_image"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_alignParentEnd="true" />
|
||||
<TextView
|
||||
android:id="@+id/tlog_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginRight="24dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/tlog_sim_image"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_alignParentEnd="true" />
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
|
@ -42,4 +58,8 @@
|
|||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginBottom="10dp" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
After Width: | Height: | Size: 372 B |
After Width: | Height: | Size: 600 B |
After Width: | Height: | Size: 279 B |
After Width: | Height: | Size: 423 B |
After Width: | Height: | Size: 466 B |
After Width: | Height: | Size: 807 B |
After Width: | Height: | Size: 717 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 111 KiB |