diff --git a/app/build.gradle b/app/build.gradle index 9f2599d..648aec0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.application' // 依赖插件脚本 -//apply from: 'tinker-support.gradle' +apply from: 'tinker-support.gradle' android { signingConfigs { @@ -16,8 +16,8 @@ android { applicationId "com.shareder.ln_jan.wechatluckymoneygetter" minSdkVersion 21 targetSdkVersion 26 - versionCode 13 - versionName "1.1.5" + versionCode 15 + versionName "1.1.7" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" ndk { //设置支持的SO库架构 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5acc50e..1653970 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,7 @@ - + @@ -10,9 +10,9 @@ - - - + + + + @@ -44,6 +45,15 @@ android:name="android.accessibilityservice" android:resource="@xml/accessible_service_config" /> + + + + + + + android:resource="@xml/provider_paths" /> diff --git a/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/activities/MainActivity.java b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/activities/MainActivity.java index 0cb5eee..7b4592c 100644 --- a/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/activities/MainActivity.java +++ b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/activities/MainActivity.java @@ -12,6 +12,7 @@ import android.os.Build; import android.os.Handler; import android.os.Message; +import android.preference.PreferenceManager; import android.provider.Settings; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; @@ -46,6 +47,8 @@ public class MainActivity extends AppCompatActivity implements AccessibilityMana private AccessibilityManager accessibilityManager; private Switch service_switch; private MainActivityHandler mHandler = new MainActivityHandler(this); + private SettingPreferenceFragment mFragment = new SettingPreferenceFragment(); + private SharedPreferences mSharedPreferences; private static final String SHOWDIALOG_TAG = "NotShowPowerDialog"; private static final int HANDLER_REQUEST_AUTHOR = 0x01; private static final int HANDLER_SHOW_POWER_DIALOG = 0x02; @@ -83,12 +86,13 @@ protected void onCreate(Bundle savedInstanceState) { accessibilityManager.addAccessibilityStateChangeListener(this); } + mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + service_switch = findViewById(R.id.service_open_switch); service_switch.setOnClickListener(this); handleMIUIStatusBar(); loadFragmentActivity(); - //requestScreenShot(); FeatureDetectionManager.getInstance().createLuckyMoneyPicture(); @@ -178,7 +182,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis } } if (builder.length() > 0) { - builder.deleteCharAt(builder.length()-1); + builder.deleteCharAt(builder.length() - 1); Toast.makeText(this, builder.toString(), Toast.LENGTH_SHORT).show(); } mHandler.sendEmptyMessage(HANDLER_SHOW_POWER_DIALOG); @@ -241,7 +245,7 @@ private void handleMIUIStatusBar() { private void loadFragmentActivity() { FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); - fragmentTransaction.replace(R.id.preferences_fragment, new SettingPreferenceFragment()); + fragmentTransaction.replace(R.id.preferences_fragment, mFragment); fragmentTransaction.commit(); } @@ -249,11 +253,15 @@ private void loadFragmentActivity() { * 更新当前 HongbaoService 显示状态 */ private void updateServiceStatus() { + SharedPreferences.Editor editor=mSharedPreferences.edit(); if (isServiceEnabled()) { service_switch.setChecked(true); + editor.putBoolean("HongBaoServiceEnable",true); } else { service_switch.setChecked(false); + editor.putBoolean("HongBaoServiceEnable",false); } + editor.apply(); } /** @@ -293,7 +301,7 @@ public void onClick(boolean isChecked) { dialog.dismiss(); } }); - if(!isFinishing()){ + if (!isFinishing()) { dialog.show(); } } @@ -331,7 +339,7 @@ private void checkAuthority() { authorList.add(Manifest.permission.READ_PHONE_STATE); } if (!authorList.isEmpty()) { - if(isFinishing()){ + if (isFinishing()) { return; } AuthorDetailDialog dialog = new AuthorDetailDialog(this, R.style.Transparent); diff --git a/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/fragments/SettingPreferenceFragment.java b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/fragments/SettingPreferenceFragment.java index 4099c23..9f8add0 100644 --- a/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/fragments/SettingPreferenceFragment.java +++ b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/fragments/SettingPreferenceFragment.java @@ -1,8 +1,10 @@ package com.shareder.ln_jan.wechatluckymoneygetter.fragments; import android.app.Activity; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.media.projection.MediaProjectionManager; import android.net.Uri; import android.os.Bundle; @@ -10,16 +12,22 @@ import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; +import android.provider.Settings; import android.support.annotation.Nullable; +import android.support.v4.app.NotificationManagerCompat; import android.widget.Toast; import com.shareder.ln_jan.wechatluckymoneygetter.R; import com.shareder.ln_jan.wechatluckymoneygetter.global.MyTransparentDialog; +import com.shareder.ln_jan.wechatluckymoneygetter.service.HongbaoNotificationListenerService; import com.shareder.ln_jan.wechatluckymoneygetter.utils.ScreenShotter; import com.tencent.bugly.beta.Beta; +import java.util.Set; + /** * Created by Ln_Jan on 2018/11/8. + * 功能设置Fragment */ public class SettingPreferenceFragment extends PreferenceFragment implements @@ -30,11 +38,26 @@ public class SettingPreferenceFragment extends PreferenceFragment implements private static final int REQUEST_MEDIA_PROJECTION = 0x01; + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.general_preference); initPrefListeners(); + if (isNotificationListenerEnabled(this.getActivity())) { + toggleNotificationListenerService(); + } + } + + @Override + public void onResume() { + super.onResume(); + setWatchNotificationPref(isNotificationListenerEnabled(this.getActivity())); + } + + @Override + public void onDestroy() { + super.onDestroy(); } @Override @@ -48,6 +71,8 @@ public boolean onPreferenceChange(Preference preference, Object o) { b = handleWatchList(preference); } else if (preference.getKey().equals("pref_watch_exclude_words")) { b = handleExcludeWords(preference, o); + } else if (preference.getKey().equals("pref_watch_notification")) { + b = handleWatchNotification(); } return b; } @@ -88,6 +113,13 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { } } + private void setWatchNotificationPref(boolean b) { + CheckBoxPreference preference = (CheckBoxPreference) findPreference("pref_watch_notification"); + if (preference != null) { + preference.setChecked(b); + } + } + private boolean handleWatchChart() { if (isAutoClickPermit()) { return true; @@ -97,6 +129,14 @@ private boolean handleWatchChart() { } } + private boolean handleWatchNotification() { + if (!isNotificationListenerEnabled(this.getActivity())) { + Toast.makeText(this.getActivity(), getString(R.string.notification_tips), Toast.LENGTH_LONG).show(); + openNotificationListenSettings(); + } + return true; + } + private boolean handleWatchSelf(Preference preference) { CheckBoxPreference preference1 = (CheckBoxPreference) findPreference("pref_watch_chat"); if (preference1 != null) { @@ -150,6 +190,42 @@ private boolean handleExcludeWords(Preference preference, Object o) { return true; } + //打开通知监听设置页面 + public void openNotificationListenSettings() { + try { + Intent intent; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) { + intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS); + } else { + intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"); + } + startActivity(intent); + } catch (Exception e) { + e.printStackTrace(); + } + } + + //检测通知监听服务是否被授权 + public boolean isNotificationListenerEnabled(Context context) { + Set packageNames = NotificationManagerCompat.getEnabledListenerPackages(this.getActivity()); + if (packageNames.contains(context.getPackageName())) { + return true; + } + return false; + } + + //把应用的NotificationListenerService实现类disable再enable,即可触发系统rebind操作 + private void toggleNotificationListenerService() { + PackageManager pm = this.getActivity().getPackageManager(); + pm.setComponentEnabledSetting( + new ComponentName(this.getActivity(), HongbaoNotificationListenerService.class), + PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); + + pm.setComponentEnabledSetting( + new ComponentName(this.getActivity(), HongbaoNotificationListenerService.class), + PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); + } + /** * 是否支持自动点击 * API >23 支持 @@ -180,7 +256,13 @@ private void initPrefListeners() { CheckBoxPreference watchListPreference = (CheckBoxPreference) findPreference("pref_watch_list"); CheckBoxPreference openPockeyPreference = (CheckBoxPreference) findPreference("pref_watch_chat"); CheckBoxPreference openSelfPockeyPreference = (CheckBoxPreference) findPreference("pref_watch_self"); + CheckBoxPreference watchNotificationPreference = (CheckBoxPreference) findPreference("pref_watch_notification"); Preference excludeWordsPref = findPreference("pref_watch_exclude_words"); + if (watchListPreference == null || openPockeyPreference == null || + openSelfPockeyPreference == null || watchNotificationPreference == null || + excludeWordsPref == null) { + return; + } String summary = getResources().getString(R.string.pref_watch_exclude_words_summary); String value = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("pref_watch_exclude_words", ""); if (value.length() > 0) { @@ -190,6 +272,7 @@ private void initPrefListeners() { watchListPreference.setOnPreferenceChangeListener(this); openPockeyPreference.setOnPreferenceChangeListener(this); openSelfPockeyPreference.setOnPreferenceChangeListener(this); + watchNotificationPreference.setOnPreferenceChangeListener(this); if (watchListPreference.isChecked()) { requestScreenShot(); } diff --git a/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/service/HongbaoNotificationListenerService.java b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/service/HongbaoNotificationListenerService.java new file mode 100644 index 0000000..2514aba --- /dev/null +++ b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/service/HongbaoNotificationListenerService.java @@ -0,0 +1,154 @@ +package com.shareder.ln_jan.wechatluckymoneygetter.service; + +import android.app.Notification; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.preference.PreferenceManager; +import android.service.notification.NotificationListenerService; +import android.service.notification.StatusBarNotification; +import android.text.TextUtils; +import android.util.Log; + +import com.shareder.ln_jan.wechatluckymoneygetter.R; +import com.shareder.ln_jan.wechatluckymoneygetter.utils.PowerUtil; +import com.shareder.ln_jan.wechatluckymoneygetter.utils.SoundPlayer; + +import java.lang.ref.WeakReference; + +/** + * Created by Ln_Jan on 2019/1/30. + * NotificationListenerService监听红包消息通知 + */ + +public class HongbaoNotificationListenerService extends NotificationListenerService { + private static final String TAG = "NotificationService"; + private static final String WECHAT_NOTIFICATION_TIP = "[微信红包]"; + private static final int HANDLER_POSTDELAY_SCREENON = 0x01; //锁屏广播 + private SharedPreferences mSharedPreferences; + private PowerUtil mPowerUtil; + private SoundPlayer mSoundPlayer = new SoundPlayer(); //提示音播放类 + private NotificationServiceHandler mHandler = new NotificationServiceHandler(this); + private NotificationBroadcastReceiver mReceiver = new NotificationBroadcastReceiver(this); + + @Override + public void onListenerConnected() { + super.onListenerConnected(); + mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + mPowerUtil = new PowerUtil(this); + mSoundPlayer.loadMusic(this, R.raw.redpackey_sound); + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_SCREEN_OFF); + filter.addAction(Intent.ACTION_SCREEN_ON); + registerReceiver(mReceiver, filter); + Log.e(TAG, "onListenerConnected"); + } + + @Override + public void onListenerDisconnected() { + mPowerUtil.releasePower(); + mSoundPlayer.releaseMusic(); + unregisterReceiver(mReceiver); + Log.e(TAG, "onListenerDisconnected"); + super.onListenerDisconnected(); + } + + @Override + public void onNotificationPosted(StatusBarNotification sbn) { + super.onNotificationPosted(sbn); + + //Log.e(TAG, sbn.getPackageName()); + + // 如果该通知的包名不是微信,那么 pass 掉 + if (!"com.tencent.mm".equals(sbn.getPackageName())) { + return; + } + + if (!mSharedPreferences.getBoolean("HongBaoServiceEnable", false) || + !mSharedPreferences.getBoolean("pref_watch_notification", true)) { + return; + } + + Notification notification = sbn.getNotification(); + if (notification == null) { + return; + } + Bundle extras = notification.extras; + if (extras != null) { + // 获取通知标题 + //String title = extras.getString(Notification.EXTRA_TITLE, ""); + //Log.e(TAG, "title:" + title); + // 获取通知内容 + String content = extras.getString(Notification.EXTRA_TEXT, ""); + //Log.e(TAG, "content:" + content); + if (!TextUtils.isEmpty(content) && content.contains(WECHAT_NOTIFICATION_TIP)) { + if (mSharedPreferences.getBoolean("pref_watch_on_lock", false)) { + mPowerUtil.handleWakeLock(true); + } else { + if (mSharedPreferences.getBoolean("pref_tips_sound", true) && + mPowerUtil.getIsScreenLock()) { + mSoundPlayer.playMusic(); + } + } + PendingIntent pendingIntent = notification.contentIntent; + if (pendingIntent != null) { + try { + pendingIntent.send(); + } catch (PendingIntent.CanceledException e) { + e.printStackTrace(); + } + } + } + } + } + + + static class NotificationServiceHandler extends Handler { + private WeakReference mRef; + + NotificationServiceHandler(HongbaoNotificationListenerService service) { + mRef = new WeakReference<>(service); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case HANDLER_POSTDELAY_SCREENON: + mRef.get().mPowerUtil.setIsScreenLock(false); + break; + default: + super.handleMessage(msg); + break; + } + } + } + + static class NotificationBroadcastReceiver extends BroadcastReceiver { + private WeakReference mRef; + + NotificationBroadcastReceiver(HongbaoNotificationListenerService service) { + mRef = new WeakReference<>(service); + } + + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action != null) { + if (action.equals(Intent.ACTION_SCREEN_OFF)) { + mRef.get().mPowerUtil.setIsScreenLock(true); + } else if (action.equals(Intent.ACTION_SCREEN_ON)) { + //mRef.get().mPowerUtil.setIsScreenLock(false); + //这里需要延时设置变量,因为在MIUI中只要亮屏就会发送这个广播,影响PowerUtil类的判断 + mRef.get().mHandler.sendEmptyMessageDelayed(HANDLER_POSTDELAY_SCREENON, 500); + } + } + } + } + +} diff --git a/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/service/HongbaoService.java b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/service/HongbaoService.java index 99a8659..f66c271 100644 --- a/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/service/HongbaoService.java +++ b/app/src/main/java/com/shareder/ln_jan/wechatluckymoneygetter/service/HongbaoService.java @@ -3,8 +3,6 @@ import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.GestureDescription; -import android.app.Notification; -import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -18,7 +16,6 @@ import android.os.Build; import android.os.Handler; import android.os.Message; -import android.os.Parcelable; import android.preference.PreferenceManager; import android.util.DisplayMetrics; import android.util.Log; @@ -30,9 +27,7 @@ import com.shareder.ln_jan.wechatluckymoneygetter.activities.SeekBarPreference; import com.shareder.ln_jan.wechatluckymoneygetter.tinker.LuckyMoneyTinkerApplication; import com.shareder.ln_jan.wechatluckymoneygetter.utils.FeatureDetectionManager; -import com.shareder.ln_jan.wechatluckymoneygetter.utils.PowerUtil; import com.shareder.ln_jan.wechatluckymoneygetter.utils.ScreenShotter; -import com.shareder.ln_jan.wechatluckymoneygetter.utils.SoundPlayer; import org.opencv.core.CvException; @@ -82,9 +77,13 @@ public class HongbaoService extends AccessibilityService { * 微信7.0.0版本的版本号 */ private static final int WX_700_VERCODE = 1380; + /** + * 微信7.0.3版本的版本号 + */ + private static final int WX_703_VERCODE = 1400; private static final int HANDLER_CLOSE_PACKEY = 0x01; private static final int HANDLER_POSTDELAY_OPEN = 0x02; //延时打开红包 - private static final int HANDLER_POSTDELAY_SCREENON = 0x03; //锁屏广播 + //private static final int HANDLER_POSTDELAY_SCREENON = 0x03; //锁屏广播 private String currentActivityName = CHATTING_LAUNCHER_UI; private String currentNodeInfoName = ""; //private String prevActivityName = CHATTING_LAUNCHER_UI; @@ -92,12 +91,12 @@ public class HongbaoService extends AccessibilityService { private boolean mPockeyOpenMutex = false; private SharedPreferences mSharedPreferences; private HongbaoServiceHandler mHandler = new HongbaoServiceHandler(this); - private PowerUtil mPowerUtil = null; + //private PowerUtil mPowerUtil = null; private HongbaoServiceReceiver mReceiver = null; private List mSelfOpenList = null; private int mPackeyTag = 0x00; private int mWechatVersion = 0x00; //微信版本 - private SoundPlayer mSoundPlayer = new SoundPlayer(); //提示音播放类 + //private SoundPlayer mSoundPlayer = new SoundPlayer(); //提示音播放类 @Override public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) { @@ -106,17 +105,17 @@ public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) { if (!mGlobalMutex) { mGlobalMutex = true; setCurrentActivityName(accessibilityEvent); - Log.d(TAG,"Type:"+accessibilityEvent.getEventType()); + Log.d(TAG, "Type:" + accessibilityEvent.getEventType()); switch (accessibilityEvent.getEventType()) { case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED: - Log.d(TAG,"TYPE_NOTIFICATION_STATE_CHANGED"); - if (mSharedPreferences.getBoolean("pref_watch_notification", false)) { + Log.d(TAG, "TYPE_NOTIFICATION_STATE_CHANGED"); + /*if (mSharedPreferences.getBoolean("pref_watch_notification", false)) { handleNotificationMessage(accessibilityEvent); - } + }*/ break; case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED: case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED: - String tip = accessibilityEvent.getText().toString(); + //String tip = accessibilityEvent.getText().toString(); handleScreenMessage(accessibilityEvent); break; default: @@ -133,9 +132,9 @@ public void onInterrupt() { @Override public void onDestroy() { - this.mPowerUtil.releasePower(); + //this.mPowerUtil.releasePower(); unregisterReceiver(this.mReceiver); - mSoundPlayer.releaseMusic(); + //mSoundPlayer.releaseMusic(); super.onDestroy(); } @@ -143,11 +142,11 @@ public void onDestroy() { protected void onServiceConnected() { super.onServiceConnected(); mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); - this.mPowerUtil = new PowerUtil(this); + //this.mPowerUtil = new PowerUtil(this); this.mReceiver = new HongbaoServiceReceiver(this); IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(Intent.ACTION_SCREEN_OFF); - intentFilter.addAction(Intent.ACTION_SCREEN_ON); + //intentFilter.addAction(Intent.ACTION_SCREEN_OFF); + //intentFilter.addAction(Intent.ACTION_SCREEN_ON); intentFilter.addAction("com.shareder.ln_jan.broadcast.shutdownservice"); registerReceiver(this.mReceiver, intentFilter); mSelfOpenList = new ArrayList<>(20); @@ -156,7 +155,7 @@ protected void onServiceConnected() { AccessibilityServiceInfo info = getServiceInfo(); info.notificationTimeout = timeout; setServiceInfo(info); - mSoundPlayer.loadMusic(this, R.raw.redpackey_sound); + //mSoundPlayer.loadMusic(this, R.raw.redpackey_sound); } private void setCurrentActivityName(AccessibilityEvent event) { @@ -174,7 +173,7 @@ private void handleScreenMessage(AccessibilityEvent ev) { if (CHATTING_LAUNCHER_UI.equals(currentActivityName)) { //聊天列表和聊天页面 if (!isInChartList()) { //Log.e(TAG, "In Chart"); - if (mWechatVersion != WX_700_VERCODE) { + if (mWechatVersion < WX_700_VERCODE) { findRedpockeyAndClick(ev); } else { findRedpockeyAndClick_700(); @@ -220,7 +219,7 @@ private void handleScreenMessage(AccessibilityEvent ev) { } - private void handleNotificationMessage(AccessibilityEvent event) { + /*private void handleNotificationMessage(AccessibilityEvent event) { // Not a hongbao String tip = event.getText().toString(); if (!tip.contains(WECHAT_NOTIFICATION_TIP)) return; @@ -242,7 +241,7 @@ private void handleNotificationMessage(AccessibilityEvent event) { e.printStackTrace(); } } - } + }*/ /** * 检查是否在聊天列表 @@ -624,7 +623,7 @@ private void openPacket() { x = (int) (screenWidth * 0.5); y = (int) (screenHeight * 0.58); } - if (mWechatVersion == WX_700_VERCODE) { + if (mWechatVersion >= WX_700_VERCODE) { y += (y * 0.15); } path.moveTo(x, y); @@ -762,9 +761,6 @@ public void handleMessage(Message msg) { case HANDLER_POSTDELAY_OPEN: mRef.get().openPacket(); break; - case HANDLER_POSTDELAY_SCREENON: - mRef.get().mPowerUtil.setIsScreenLock(false); - break; default: super.handleMessage(msg); break; @@ -783,7 +779,7 @@ static class HongbaoServiceReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - if (action.equals(Intent.ACTION_SCREEN_OFF)) { + /*if (action.equals(Intent.ACTION_SCREEN_OFF)) { mRef.get().mPowerUtil.setIsScreenLock(true); } else if (action.equals(Intent.ACTION_SCREEN_ON)) { //mRef.get().mPowerUtil.setIsScreenLock(false); @@ -793,6 +789,11 @@ public void onReceive(Context context, Intent intent) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { mRef.get().disableSelf(); } + }*/ + if (action.equals("com.shareder.ln_jan.broadcast.shutdownservice")) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + mRef.get().disableSelf(); + } } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 76b3157..a95367a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -40,4 +40,5 @@ 解除权限管理/省电策略中的后台限制 红包语音提示 锁屏状态下播报语音提示[红包来了] + 开启通知读取权限用于监听红包信息 diff --git a/app/src/main/res/xml/accessible_service_config.xml b/app/src/main/res/xml/accessible_service_config.xml index 463e7be..45fa9d7 100644 --- a/app/src/main/res/xml/accessible_service_config.xml +++ b/app/src/main/res/xml/accessible_service_config.xml @@ -1,6 +1,6 @@