first commit
This commit is contained in:
@@ -1,101 +1,110 @@
|
||||
// apply plugin: 'com.android.application'
|
||||
if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
|
||||
apply plugin: 'com.android.library' // 正式环境 library不能独立运行
|
||||
} else {
|
||||
apply plugin: 'com.android.application' // 测试环境 application独立运行
|
||||
}
|
||||
|
||||
// 完整的方式 性能
|
||||
android {
|
||||
compileSdkVersion app_android.compileSdkVersion
|
||||
buildToolsVersion app_android.buildToolsVersion
|
||||
|
||||
defaultConfig {
|
||||
// applicationId app_appid.personal
|
||||
if (!isRelease) { // 如果是集成化模式,不能有applicationId
|
||||
applicationId app_appid.personal // 组件化模式能独立运行才能有applicationId
|
||||
}
|
||||
|
||||
minSdkVersion app_android.minSdkVersion
|
||||
targetSdkVersion app_android.targetSdkVersion
|
||||
versionCode app_android.versionCode
|
||||
versionName app_android.versionName
|
||||
testInstrumentationRunner app_android.testInstrumentationRunner
|
||||
|
||||
// 这个方法接收三个非空的参数,第一个:确定值的类型,第二个:指定key的名字,第三个:传值(必须是String)
|
||||
// 为什么需要定义这个?因为src代码中有可能需要用到跨模块交互,如果是组件化模块显然不行
|
||||
// 切记:不能在android根节点,只能在defaultConfig或buildTypes节点下
|
||||
buildConfigField("boolean", "isRelease", String.valueOf(isRelease))
|
||||
|
||||
/// 在gradle文件中配置选项参数值(用于APT传参接收)
|
||||
// 同学们注意:切记:必须写在defaultConfig节点下
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = [moduleName: project.getName(), packageNameForAPT: packageNameForAPT]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
if (!isRelease) {
|
||||
// 如果是组件化模式,需要单独运行时 Debug
|
||||
manifest.srcFile 'src/main/debug/AndroidManifest.xml' // 生效
|
||||
} else { // 正式环境下
|
||||
// 集成化模式,整个项目打包apk
|
||||
manifest.srcFile 'src/main/AndroidManifest.xml' // 让我们之前 默认的路径下的清单文件再次生效
|
||||
|
||||
java {
|
||||
// release 时 debug 目录下文件不需要合并到主工程
|
||||
exclude "**/debug/**"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation 'com.google.android.material:material:1.3.0'
|
||||
|
||||
/*implementation 'androidx.appcompat:appcompat:1.1.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'*/
|
||||
|
||||
// 循环引入第三方库
|
||||
app_dependencies.each {k, v ->implementation v}
|
||||
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
|
||||
// 公共基础库
|
||||
implementation project(":common")
|
||||
|
||||
// 注解模块
|
||||
implementation project(":arouter_annotation")
|
||||
|
||||
// 使用注解处理器
|
||||
// 注解处理器
|
||||
annotationProcessor project(':arouter_compiler')
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
||||
implementation 'com.getbase:floatingactionbutton:1.9.0'
|
||||
//noinspection GradleCompatible
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
api 'com.blankj:utilcode:1.23.7'
|
||||
}
|
||||
// apply plugin: 'com.android.application'
|
||||
if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
|
||||
apply plugin: 'com.android.library' // 正式环境 library不能独立运行
|
||||
} else {
|
||||
apply plugin: 'com.android.application' // 测试环境 application独立运行
|
||||
}
|
||||
|
||||
// 完整的方式 性能
|
||||
android {
|
||||
namespace 'com.derry.wechat'
|
||||
compileSdk app_android.compileSdkVersion
|
||||
compileSdkVersion app_android.compileSdkVersion
|
||||
buildToolsVersion app_android.buildToolsVersion
|
||||
|
||||
defaultConfig {
|
||||
// applicationId app_appid.personal
|
||||
if (!isRelease) { // 如果是集成化模式,不能有applicationId
|
||||
applicationId app_appid.personal // 组件化模式能独立运行才能有applicationId
|
||||
}
|
||||
|
||||
minSdk app_android.minSdkVersion
|
||||
minSdkVersion app_android.minSdkVersion
|
||||
targetSdk app_android.targetSdkVersion
|
||||
targetSdkVersion app_android.targetSdkVersion
|
||||
versionCode app_android.versionCode
|
||||
versionName app_android.versionName
|
||||
testInstrumentationRunner app_android.testInstrumentationRunner
|
||||
|
||||
// 这个方法接收三个非空的参数,第一个:确定值的类型,第二个:指定key的名字,第三个:传值(必须是String)
|
||||
// 为什么需要定义这个?因为src代码中有可能需要用到跨模块交互,如果是组件化模块显然不行
|
||||
// 切记:不能在android根节点,只能在defaultConfig或buildTypes节点下
|
||||
buildConfigField("boolean", "isRelease", String.valueOf(isRelease))
|
||||
|
||||
/// 在gradle文件中配置选项参数值(用于APT传参接收)
|
||||
// 同学们注意:切记:必须写在defaultConfig节点下
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = [moduleName: project.getName(), packageNameForAPT: packageNameForAPT]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
if (!isRelease) {
|
||||
// 如果是组件化模式,需要单独运行时 Debug
|
||||
manifest.srcFile 'src/main/debug/AndroidManifest.xml' // 生效
|
||||
} else { // 正式环境下
|
||||
// 集成化模式,整个项目打包apk
|
||||
manifest.srcFile 'src/main/AndroidManifest.xml' // 让我们之前 默认的路径下的清单文件再次生效
|
||||
|
||||
java {
|
||||
// release 时 debug 目录下文件不需要合并到主工程
|
||||
exclude "**/debug/**"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation 'com.google.android.material:material:1.3.0'
|
||||
|
||||
/*implementation 'androidx.appcompat:appcompat:1.1.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'*/
|
||||
|
||||
// 循环引入第三方库
|
||||
app_dependencies.each {k, v ->implementation v}
|
||||
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
|
||||
// 公共基础库
|
||||
implementation project(":common")
|
||||
|
||||
// 注解模块
|
||||
implementation project(":arouter_annotation")
|
||||
|
||||
// 使用注解处理器
|
||||
// 注解处理器
|
||||
annotationProcessor project(':arouter_compiler')
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
||||
implementation 'com.getbase:floatingactionbutton:1.9.0'
|
||||
//noinspection GradleCompatible
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
api 'com.blankj:utilcode:1.30.6'
|
||||
}
|
||||
|
||||
@@ -1,96 +1,98 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.derry.wechat">
|
||||
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission
|
||||
android:name="android.permission.INJECT_EVENTS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.GET_TASKS" />
|
||||
<uses-permission android:name="android.permission.REORDER_TASKS" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 这个权限用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 这个权限用于访问GPS定位 -->
|
||||
<uses-permission android:name="android.permission.READ_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 读取手机通讯录 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入手机通讯录 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 这个权限用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 这个权限用于访问GPS定位 -->
|
||||
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于读取手机当前的状态 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
|
||||
<!-- 下载权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <!-- 访问网络,网络定位需要上网 -->
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 腾讯bugly权限 -->
|
||||
<uses-permission android:name="android.permission.CALL_PHONE" /> <!-- Bugly升级SDK权限配置开始 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 二维码扫描 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 震动权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 摄像头权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 用于申请调用A-GPS模块 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于读取手机当前的状态 -->
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
|
||||
<uses-permission android:name="android.permission.INTERNET" /> <!-- 读取联系人权限,上传联系人需要用到此权限 -->
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 网络权限,加载网络网页需要联网 -->
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 精确定位权限,允许一个程序访问精确位置(GPS定位) -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
|
||||
<application
|
||||
android:name="com.xiangxue.common.base.BaseApplication"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/atom_logo"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/atom_logo"
|
||||
android:supportsRtl="true"
|
||||
android:enabled="true"
|
||||
android:theme="@style/Theme.Design.NoActionBar">
|
||||
<activity android:name=".Activity.W_MainActivity"
|
||||
android:exported="true">
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
<activity android:name=".Activity.WeChatPlate"/>
|
||||
<activity android:name=".Activity.WeChatChannelActivity"/>
|
||||
<service
|
||||
android:name=".abllib.AblService"
|
||||
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
|
||||
android:enabled="true">
|
||||
<intent-filter android:priority="1000">
|
||||
<action android:name="android.accessibilityservice.AccessibilityService" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.accessibilityservice"
|
||||
android:resource="@xml/abl_service" />
|
||||
</service>
|
||||
</application>
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.derry.wechat">
|
||||
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission
|
||||
android:name="android.permission.INJECT_EVENTS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.GET_TASKS" />
|
||||
<uses-permission android:name="android.permission.REORDER_TASKS" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 这个权限用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 这个权限用于访问GPS定位 -->
|
||||
<uses-permission android:name="android.permission.READ_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 读取手机通讯录 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入手机通讯录 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 这个权限用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 这个权限用于访问GPS定位 -->
|
||||
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于读取手机当前的状态 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
|
||||
<!-- 下载权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <!-- 访问网络,网络定位需要上网 -->
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 腾讯bugly权限 -->
|
||||
<uses-permission android:name="android.permission.CALL_PHONE" /> <!-- Bugly升级SDK权限配置开始 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 二维码扫描 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 震动权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 摄像头权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 用于申请调用A-GPS模块 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于读取手机当前的状态 -->
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
|
||||
<uses-permission android:name="android.permission.INTERNET" /> <!-- 读取联系人权限,上传联系人需要用到此权限 -->
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 网络权限,加载网络网页需要联网 -->
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 精确定位权限,允许一个程序访问精确位置(GPS定位) -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/atom_logo"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/atom_logo"
|
||||
android:supportsRtl="true"
|
||||
android:enabled="true"
|
||||
android:theme="@style/Theme.Design.NoActionBar">
|
||||
<activity android:name=".Activity.W_MainActivity"
|
||||
android:exported="false">
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
<activity android:name=".Activity.WeChatPlate"
|
||||
android:exported="false"/>
|
||||
<activity android:name=".Activity.WeChatChannelActivity"
|
||||
android:exported="false"/>
|
||||
<service
|
||||
android:name=".abllib.AblService"
|
||||
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter android:priority="1000">
|
||||
<action android:name="android.accessibilityservice.AccessibilityService" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.accessibilityservice"
|
||||
android:resource="@xml/abl_service" />
|
||||
</service>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1,105 +1,105 @@
|
||||
package com.derry.wechat.debug;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.PopupWindow;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.derry.wechat.Activity.W_MainActivity;
|
||||
import com.derry.wechat.Activity.WeChatChannelActivity;
|
||||
import com.derry.wechat.Activity.WeChatPlate;
|
||||
import com.derry.wechat.steps.TestAblStep1;
|
||||
import com.derry.wechat.abllib.AblConfig;
|
||||
import com.derry.wechat.abllib.AblService;
|
||||
import com.derry.wechat.abllib.AblStepHandler;
|
||||
import com.derry.wechat.abllib.AblSteps;
|
||||
import com.derry.wechat.abllib.utils.AblUtil;
|
||||
import com.derry.wechat.steps.TestAblStep2;
|
||||
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
*/
|
||||
public class Login_DebugActivity extends AppCompatActivity {
|
||||
public static String APP_PACKAGE_NAME = "com.tencent.mm";
|
||||
private PopupWindow mPopCut;
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.w_activity_debug);
|
||||
//透明状态栏
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
||||
|
||||
AblConfig.Builder()
|
||||
.setMonitoringPackageNames("com.tencent.mm")//微信包
|
||||
.setLogTag("DDD")//logtag,不设置默认是abllib
|
||||
.setStepMsgDelayMillis(3000)//步骤延迟时间
|
||||
.setFindViewMillisInFuture(10000)//寻找界面超时时间
|
||||
.setFindViewCountDownInterval(200)//寻找界面间隔时间
|
||||
.build().init();
|
||||
AblStepHandler.getInstance().initStepClass(new TestAblStep1() , new TestAblStep2());
|
||||
|
||||
AblUtil.getPermissions(Login_DebugActivity.this);
|
||||
|
||||
//adb shell pm grant com.derry.wechat.debug android.permission.WRITE_SECURE_SETTINGS
|
||||
Settings.Secure.putString(getContentResolver(),
|
||||
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
Settings.Secure.putString(getContentResolver(),
|
||||
Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
|
||||
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
|
||||
// Log.e("TIAOSHI###", "无障碍服务正常");
|
||||
ToastUtils.showShort( "无障碍服务正常");
|
||||
}else {
|
||||
ToastUtils.showShort( "无障碍服务异常");
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
|
||||
}
|
||||
/**
|
||||
* 底部导航栏
|
||||
*/
|
||||
Button mBtnCut = findViewById(R.id.cut);
|
||||
mBtnCut.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@SuppressLint("InflateParams") View v = getLayoutInflater().inflate(R.layout.layout_pop,null);
|
||||
mPopCut = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
mPopCut.setTouchable(true);
|
||||
mPopCut.setFocusable(true);
|
||||
mPopCut.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM,0,0);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 菜单
|
||||
*/
|
||||
Button mBtnRecommend = findViewById(R.id.recommed);
|
||||
mBtnRecommend.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Intent intent = new Intent(Login_DebugActivity.this, WeChatPlate.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
Button mBtnChannel = findViewById(R.id.channel);
|
||||
mBtnChannel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Intent intent = new Intent(Login_DebugActivity.this,WeChatChannelActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
package com.derry.wechat.debug;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.PopupWindow;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.derry.wechat.Activity.W_MainActivity;
|
||||
import com.derry.wechat.Activity.WeChatChannelActivity;
|
||||
import com.derry.wechat.Activity.WeChatPlate;
|
||||
import com.derry.wechat.steps.TestAblStep1;
|
||||
import com.derry.wechat.abllib.AblConfig;
|
||||
import com.derry.wechat.abllib.AblService;
|
||||
import com.derry.wechat.abllib.AblStepHandler;
|
||||
import com.derry.wechat.abllib.AblSteps;
|
||||
import com.derry.wechat.abllib.utils.AblUtil;
|
||||
import com.derry.wechat.steps.TestAblStep2;
|
||||
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
*/
|
||||
public class Login_DebugActivity extends AppCompatActivity {
|
||||
public static String APP_PACKAGE_NAME = "com.tencent.mm";
|
||||
private PopupWindow mPopCut;
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.w_activity_debug);
|
||||
//透明状态栏
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
||||
|
||||
AblConfig.Builder()
|
||||
.setMonitoringPackageNames("com.tencent.mm")//微信包
|
||||
.setLogTag("DDD")//logtag,不设置默认是abllib
|
||||
.setStepMsgDelayMillis(3000)//步骤延迟时间
|
||||
.setFindViewMillisInFuture(10000)//寻找界面超时时间
|
||||
.setFindViewCountDownInterval(200)//寻找界面间隔时间
|
||||
.build().init();
|
||||
AblStepHandler.getInstance().initStepClass(new TestAblStep1() , new TestAblStep2());
|
||||
|
||||
AblUtil.getPermissions(Login_DebugActivity.this);
|
||||
|
||||
//adb shell pm grant com.derry.wechat.debug android.permission.WRITE_SECURE_SETTINGS
|
||||
// Settings.Secure.putString(getContentResolver(),
|
||||
// Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
// Settings.Secure.putString(getContentResolver(),
|
||||
// Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
|
||||
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
|
||||
// Log.e("TIAOSHI###", "无障碍服务正常");
|
||||
ToastUtils.showShort( "无障碍服务正常");
|
||||
}else {
|
||||
ToastUtils.showShort( "无障碍服务异常");
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
|
||||
}
|
||||
/**
|
||||
* 底部导航栏
|
||||
*/
|
||||
Button mBtnCut = findViewById(R.id.cut);
|
||||
mBtnCut.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@SuppressLint("InflateParams") View v = getLayoutInflater().inflate(R.layout.layout_pop,null);
|
||||
mPopCut = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
mPopCut.setTouchable(true);
|
||||
mPopCut.setFocusable(true);
|
||||
mPopCut.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM,0,0);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 菜单
|
||||
*/
|
||||
Button mBtnRecommend = findViewById(R.id.recommed);
|
||||
mBtnRecommend.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Intent intent = new Intent(Login_DebugActivity.this, WeChatPlate.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
Button mBtnChannel = findViewById(R.id.channel);
|
||||
mBtnChannel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Intent intent = new Intent(Login_DebugActivity.this,WeChatChannelActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user