新增sim卡切换

新增短信监听
serial
liuguijing 2 years ago
parent 1bd3fadd52
commit 050e662d7c

@ -65,7 +65,7 @@ dependencies {
// implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'

@ -31,6 +31,8 @@
<uses-permission android:name="android.permission.DEVICE_POWER" tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"
tools:ignore="ProtectedPermissions" />
<uses-feature android:name="android.hardware.camera" />
<application
@ -43,7 +45,6 @@
android:theme="@style/Theme.MicroPhoto"
tools:targetApi="28">
<service
android:name=".MicroPhotoService"
android:enabled="true"
@ -77,6 +78,11 @@
</intent-filter>
</receiver>
<receiver android:name=".SmsReceiver" >
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<activity

@ -54,6 +54,7 @@ find_package(ncnn REQUIRED)
SET(YAMC_INC_DIR ${CMAKE_SOURCE_DIR})
SET(TERM_CORE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../xymp/Core)
#SET(TERM_CORE_ROOT D:/Workspace/xymp/Core)
SET(JSONCPP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp)
SET(JSONCPP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/include)
@ -211,14 +212,14 @@ include_directories(${TERM_CORE_ROOT})
# include_directories(${PROJECT_SOURCE_DIR}/../../../../../libs/inc/)
add_library( # Sets the name of the library.
evpp_lite
# Sets the library as a shared library.
STATIC
# Provides a relative path to your source file(s).
${EVPP_SOURCES} )
#add_library( # Sets the name of the library.
# evpp_lite
#
# # Sets the library as a shared library.
# STATIC
#
# # Provides a relative path to your source file(s).
# ${EVPP_SOURCES} )
IF (CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")

@ -1,6 +1,7 @@
package com.xinyingpower.microphoto;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.SurfaceTexture;
@ -9,9 +10,13 @@ import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.os.SystemClock;
import androidx.core.app.ActivityCompat;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.Display;
import android.view.View;
@ -22,6 +27,7 @@ import com.xinyingpower.microphoto.databinding.ActivityMainBinding;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Date;
@ -37,6 +43,7 @@ public class MainActivity extends AppCompatActivity {
}
private ActivityMainBinding binding;
private int defaultDataSubId;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -106,6 +113,7 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onClick(View view) {
MicroPhotoService.takePhoto(MainActivity.this, 1, 255, true);
// setDefaultDataSubId(1);
}
});
@ -113,6 +121,7 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onClick(View view) {
MicroPhotoService.takePhoto(MainActivity.this, 2, 255, true);
// setDefaultDataSubId(2);
}
});
@ -132,6 +141,31 @@ public class MainActivity extends AppCompatActivity {
});
binding.simchange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
defaultDataSubId = getDefaultDataSubId();
System.out.println(defaultDataSubId);
}
});
binding.simchange2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (defaultDataSubId == 0) {
setDefaultDataSubId(1);
} else {
if (defaultDataSubId == 1) {
setDefaultDataSubId(2);
} else {
setDefaultDataSubId(1);
}
}
}
});
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
@ -143,8 +177,32 @@ public class MainActivity extends AppCompatActivity {
}
protected void takePhoto()
{
private void setDefaultDataSubId(int subId) {
SubscriptionManager subscriptionManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
try {
Method method = subscriptionManager.getClass().getDeclaredMethod("setDefaultDataSubId", int.class);
method.invoke(subscriptionManager, subId);
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Method method1 = telephonyManager.getClass().getDeclaredMethod("setDataEnabled", boolean.class);
method1.invoke(telephonyManager, true);
} catch (Exception e) {
Log.e(TAG, "wjz debug setDefaultDataSubId: error is " + e.getMessage());
}
}
private int getDefaultDataSubId() {
SubscriptionManager subscriptionManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
try {
Method method = subscriptionManager.getClass().getDeclaredMethod("getDefaultDataSubscriptionId");
return (int) method.invoke(subscriptionManager);
} catch (Exception e) {
Log.e(TAG, "wjz debug getDefaultDataSubId: error is " + e.getMessage());
}
return 0;
}
protected void takePhoto() {
File path = Environment.getExternalStorageDirectory();
File file = new File(path, "photo.jpg");
boolean res = false;
@ -153,8 +211,7 @@ public class MainActivity extends AppCompatActivity {
res = DSCameraManager.getInstace().takePhoto(file.getAbsolutePath(), 2);
if (!res)
{
if (!res) {
int aa = 0;
}

@ -0,0 +1,63 @@
package com.xinyingpower.microphoto;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
/**
* 广
*
* @author jingjing
*/
public class SmsReceiver extends BroadcastReceiver {
private Context mContext;
public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
public static final String SMS_DELIVER_ACTION = "android.provider.Telephony.SMS_DELIVER";
@Override
public void onReceive(Context context, Intent intent) {
this.mContext = context;
Log.e("日志onReceive...", "-接收短信执行了" + intent.getStringExtra("sele"));
String action = intent.getAction();
if (SMS_RECEIVED_ACTION.equals(action) || SMS_DELIVER_ACTION.equals(action)) {
Log.e("日志onReceive。。。", "开始接收短信.....");
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null && pdus.length > 0) {
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
byte[] pdu = (byte[]) pdus[i];
messages[i] = SmsMessage.createFromPdu(pdu);
}
for (SmsMessage message : messages) {
String content = message.getMessageBody();// 得到短信内容
String sender = message.getOriginatingAddress();// 得到发信息的号码
Date date = new Date(message.getTimestampMillis());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone("GMT+08:00"));
String dateContent = format.format(date);
// this.abortBroadcast();// 中止
}
}
}
}
}
}

@ -8,93 +8,109 @@
tools:context=".MainActivity">
<TextView
android:id="@+id/sample_text"
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginLeft="38dp"
android:layout_marginTop="38dp"
android:text="Server"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.929" />
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="114dp"
android:ems="10"
android:inputType=""
app:layout_constraintBottom_toBottomOf="@+id/textView"
app:layout_constraintStart_toEndOf="@+id/textView"
app:layout_constraintTop_toTopOf="@+id/textView" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="52dp"
android:gravity="center"
android:text="Port"
app:layout_constraintLeft_toLeftOf="@+id/textView"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<EditText
android:id="@+id/port"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType=""
android:text="Name"
app:layout_constraintBottom_toBottomOf="@+id/textView2"
app:layout_constraintLeft_toLeftOf="@+id/server"
app:layout_constraintLeft_toRightOf="@+id/textView2"
app:layout_constraintTop_toTopOf="@+id/textView2" />
<Button
android:id="@+id/stopServBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="36dp"
android:layout_marginTop="16dp"
android:enabled="false"
android:text="Stop"
app:layout_constraintStart_toEndOf="@+id/startServBtn"
app:layout_constraintTop_toBottomOf="@+id/port" />
android:text="Stop" />
<Button
android:id="@+id/startServBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="56dp"
android:layout_marginTop="16dp"
android:text="Start"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/port" />
android:text="Start" />
<Button
android:id="@+id/takePhotoBtn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="208dp"
android:layout_marginTop="216dp"
android:text="Take Photo2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:text="Take Photo2" />
<Button
android:id="@+id/takePhotoBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="56dp"
android:layout_marginTop="216dp"
android:text="Take Photo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:text="Take Photo" />
<EditText
android:id="@+id/server"
<Button
android:id="@+id/simchange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:ems="10"
android:inputType=""
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="114dp" />
android:text="sim卡获取" />
<TextView
android:id="@+id/textView"
<Button
android:id="@+id/simchange2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Server"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="38dp" />
android:text="切换sim2" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
<androidx.constraintlayout.helper.widget.Flow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Port"
tools:layout_editor_absoluteX="19dp"
tools:layout_editor_absoluteY="90dp" />
android:layout_marginStart="16dp"
android:layout_marginTop="48dp"
app:constraint_referenced_ids="startServBtn,stopServBtn,takePhotoBtn,takePhotoBtn2,simchange,simchange2"
app:flow_horizontalGap="20dp"
app:flow_wrapMode="chain"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/port" />
<EditText
android:id="@+id/port"
<TextView
android:id="@+id/sample_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:ems="10"
android:inputType=""
android:text="Name"
app:layout_constraintTop_toBottomOf="@+id/server"
tools:layout_editor_absoluteX="118dp" />
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.929" />
<SurfaceView
android:id="@+id/surfaceView"

@ -16,3 +16,4 @@ plugins {
}

Loading…
Cancel
Save