version:1.3.6
fix: update:显示微信抖音
This commit is contained in:
@@ -4,6 +4,7 @@ import android.Manifest;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
@@ -14,11 +15,15 @@ import android.database.Cursor;
|
||||
import android.hardware.camera2.CameraAccessException;
|
||||
import android.hardware.camera2.CameraCharacteristics;
|
||||
import android.hardware.camera2.CameraManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.CallLog;
|
||||
import android.provider.ContactsContract;
|
||||
import android.provider.Settings;
|
||||
import android.speech.tts.TextToSpeech;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
@@ -81,10 +86,12 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.arialyy.aria.core.inf.IEntity.STATE_RUNNING;
|
||||
|
||||
public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBinding> implements NetworkUtils.OnNetworkStatusChangedListener, NotificationService.NotificationListener {
|
||||
public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBinding> implements NetworkUtils.OnNetworkStatusChangedListener,
|
||||
NotificationService.NotificationListener, TextToSpeech.OnInitListener {
|
||||
private static final String TAG = "MainActivity";
|
||||
|
||||
|
||||
@@ -107,8 +114,10 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
private int appListIndex = 0;
|
||||
private int defaultCurrent = 0;
|
||||
|
||||
private CameraManager cameraManager;
|
||||
private CameraManager mCameraManager;
|
||||
private boolean flashing = false;
|
||||
private TelephonyManager mTelephonyManager;
|
||||
private PhoneStateListener mPhoneStateListener;
|
||||
|
||||
// private DockAppAdapter mDockAppAdapter;
|
||||
private DockAppGridAdapter mDockAppGridAdapter;
|
||||
@@ -178,7 +187,30 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
// Toaster.show("请授予\"" + getString(R.string.app_name) + "\"使用通知权");
|
||||
// gotoNotificationAccessSetting(MainActivity.this);
|
||||
// }
|
||||
cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
|
||||
mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
|
||||
mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
|
||||
mPhoneStateListener = new PhoneStateListener() {
|
||||
@Override
|
||||
public void onCallStateChanged(int state, String phoneNumber) {
|
||||
super.onCallStateChanged(state, phoneNumber);
|
||||
Log.e(TAG, "onCallStateChanged: state = " + state);
|
||||
switch (state) {
|
||||
case TelephonyManager.CALL_STATE_IDLE:
|
||||
Log.e(TAG, "onCallStateChanged: 无状态");
|
||||
break;
|
||||
case TelephonyManager.CALL_STATE_OFFHOOK:
|
||||
Log.e(TAG, "onCallStateChanged: 通话");
|
||||
break;
|
||||
case TelephonyManager.CALL_STATE_RINGING:
|
||||
Log.e(TAG, "onCallStateChanged: 响铃");
|
||||
getLatestIncomingCallNumber();
|
||||
break;
|
||||
default:
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
|
||||
|
||||
mFragmentManager = getSupportFragmentManager();
|
||||
mFragmentTransaction = mFragmentManager.beginTransaction();
|
||||
@@ -284,6 +316,60 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
decorView.setSystemUiVisibility(uiOptions);
|
||||
}
|
||||
|
||||
private String getLatestIncomingCallNumber() {
|
||||
String phoneNumber = "";
|
||||
Cursor cursor = getContentResolver().query(
|
||||
CallLog.Calls.CONTENT_URI, new String[]{CallLog.Calls.NUMBER},
|
||||
CallLog.Calls.TYPE + " = " + CallLog.Calls.INCOMING_TYPE,
|
||||
null,
|
||||
CallLog.Calls.DATE + " DESC"
|
||||
);
|
||||
if (cursor != null) {
|
||||
try {
|
||||
if (cursor.moveToFirst()) {
|
||||
phoneNumber = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "getLatestIncomingCallNumber: " + e.getMessage());
|
||||
} finally {
|
||||
cursor.close();
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "getLatestIncomingCallNumber: cursor is null");
|
||||
}
|
||||
Log.e(TAG, "getLatestIncomingCallNumber: " + phoneNumber);
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
public String getContactName(String number) {
|
||||
if (TextUtils.isEmpty(number)) {
|
||||
return null;
|
||||
}
|
||||
ContentResolver resolver = getContentResolver();
|
||||
Uri lookupUri;
|
||||
String[] projection = new String[]{ContactsContract.PhoneLookup._ID, ContactsContract.PhoneLookup.DISPLAY_NAME};
|
||||
Cursor cursor = null;
|
||||
try {
|
||||
lookupUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
|
||||
cursor = resolver.query(lookupUri, projection, null, null, null);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
try {
|
||||
lookupUri = Uri.withAppendedPath(android.provider.Contacts.Phones.CONTENT_FILTER_URL,
|
||||
Uri.encode(number));
|
||||
cursor = resolver.query(lookupUri, projection, null, null, null);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
String ret = "";
|
||||
if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
|
||||
ret = cursor.getString(1);
|
||||
cursor.close();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private void updateIconBg() {
|
||||
int size0 = NotificationService.getNotificationLength("com.android.dialer");
|
||||
if (size0 == 0) {
|
||||
@@ -900,6 +986,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
registmUpdateAddressReceiver();
|
||||
registerTimeReceiver();
|
||||
registerMissCallReceiver();
|
||||
registerPhoneStateReceiver();
|
||||
}
|
||||
|
||||
private void unregisterAllReceiver() {
|
||||
@@ -921,6 +1008,9 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
if (mMissCallReceiver != null) {
|
||||
unregisterReceiver(mMissCallReceiver);
|
||||
}
|
||||
if (mPhoneStateReceiver != null) {
|
||||
unregisterReceiver(mPhoneStateReceiver);
|
||||
}
|
||||
}
|
||||
|
||||
private void registNewAppReceiver() {
|
||||
@@ -1071,6 +1161,70 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
}
|
||||
}
|
||||
|
||||
private PhoneStateReceiver mPhoneStateReceiver;
|
||||
|
||||
private void registerPhoneStateReceiver() {
|
||||
if (mPhoneStateReceiver == null) {
|
||||
mPhoneStateReceiver = new PhoneStateReceiver();
|
||||
}
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction("android.intent.action.PHONE_STATE");
|
||||
registerReceiver(mPhoneStateReceiver, filter);
|
||||
}
|
||||
|
||||
private class PhoneStateReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (TextUtils.equals(action, "android.intent.action.PHONE_STATE")) {
|
||||
String state = intent.getStringExtra("state");
|
||||
String number = intent.getStringExtra("incoming_number");
|
||||
Log.e(TAG, "PhoneStateReceiver: state = " + state + ", number = " + number);
|
||||
if (TelephonyManager.EXTRA_STATE_RINGING.equalsIgnoreCase(state)) {
|
||||
boolean voiceBroadcast = mMMKV.decodeBool(CommonConfig.VOICE_BROADCAST, false);
|
||||
Log.e(TAG, "onReceive: voiceBroadcast = " + voiceBroadcast);
|
||||
if (voiceBroadcast) {
|
||||
mTextToSpeech = new TextToSpeech(MainActivity.this, MainActivity.this);
|
||||
if (TextUtils.isEmpty(number)) {
|
||||
mPhoneInfo = "未知号码来电";
|
||||
} else {
|
||||
mPhoneInfo = "来自" + getContactName(number) + number + "的电话";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private TextToSpeech mTextToSpeech;
|
||||
private String mPhoneInfo;
|
||||
|
||||
@Override
|
||||
public void onInit(int status) {
|
||||
//初始化成功
|
||||
if (status == TextToSpeech.SUCCESS) {
|
||||
Log.e(TAG, "init success");
|
||||
//设置语言
|
||||
int result = mTextToSpeech.setLanguage(Locale.CHINA);
|
||||
if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE
|
||||
&& result != TextToSpeech.LANG_AVAILABLE) {
|
||||
} else {
|
||||
//设置音调
|
||||
mTextToSpeech.setPitch(1.0f);
|
||||
//设置语速,1.0为正常语速
|
||||
mTextToSpeech.setSpeechRate(1.0f);
|
||||
//播放
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append(mPhoneInfo);
|
||||
mTextToSpeech.speak(stringBuilder.toString(), TextToSpeech.QUEUE_ADD, null);
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "init fail");
|
||||
Toaster.showLong("TTS初始化失败");
|
||||
}
|
||||
}
|
||||
|
||||
private void setTime() {
|
||||
LiveEventBus
|
||||
.get("time")
|
||||
@@ -1138,8 +1292,8 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
public void openFlash(View v) {
|
||||
if (flashing) {
|
||||
try {
|
||||
String CameraId = cameraManager.getCameraIdList()[0];
|
||||
cameraManager.setTorchMode(CameraId, false);
|
||||
String CameraId = mCameraManager.getCameraIdList()[0];
|
||||
mCameraManager.setTorchMode(CameraId, false);
|
||||
} catch (CameraAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -1148,8 +1302,8 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
|
||||
// cl_flashlight.setBackground(mContext.getDrawable(R.drawable.control_background_item_dis));
|
||||
} else {
|
||||
try {
|
||||
String CameraId = cameraManager.getCameraIdList()[0];
|
||||
cameraManager.setTorchMode(CameraId, true);
|
||||
String CameraId = mCameraManager.getCameraIdList()[0];
|
||||
mCameraManager.setTorchMode(CameraId, true);
|
||||
} catch (CameraAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -38,12 +38,17 @@ public class AppStatusManager {
|
||||
this.add("com.android.calculator2");
|
||||
this.add("com.android.calendar");
|
||||
this.add("com.android.settings");
|
||||
this.add("com.android.stk");
|
||||
this.add("com.tencent.mm");
|
||||
this.add("com.ss.android.ugc.aweme");
|
||||
this.add("com.mediatek.camera");
|
||||
|
||||
}};
|
||||
|
||||
private static final Set<String> mExcludeApp = new HashSet<String>() {{
|
||||
this.add("com.android.contacts");
|
||||
this.add("com.android.dialer");
|
||||
this.add("com.mediatek.camera");
|
||||
// this.add("com.mediatek.camera");
|
||||
this.add("cn.etouch.ecalendar");
|
||||
}};
|
||||
|
||||
|
||||
@@ -180,12 +180,12 @@ public class ApkUtils {
|
||||
this.add("com.xxpatx.os");
|
||||
this.add("com.xxpatx.store");
|
||||
this.add("com.android.quicksearchbox");
|
||||
this.add("com.android.stk");
|
||||
// this.add("com.android.stk");
|
||||
this.add("com.debug.loggerui");
|
||||
this.add("com.mediatek.gnss.nonframeworklbs");
|
||||
this.add("com.tencent.mm");
|
||||
this.add("com.ss.android.ugc.aweme");
|
||||
this.add("com.mediatek.camera");
|
||||
// this.add("com.tencent.mm");
|
||||
// this.add("com.ss.android.ugc.aweme");
|
||||
// this.add("com.mediatek.camera");
|
||||
this.add("cn.etouch.ecalendar");
|
||||
}};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user