diff --git a/JCVideo_Library/build.gradle b/JCVideo_Library/build.gradle index 2e84d1f26..1589d9e0d 100644 --- a/JCVideo_Library/build.gradle +++ b/JCVideo_Library/build.gradle @@ -25,6 +25,6 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) testImplementation 'junit:junit:4.12' - api 'androidx.appcompat:appcompat:1.0.0' + api 'androidx.appcompat:appcompat:1.3.0' } diff --git a/iFish7/build.gradle b/iFish7/build.gradle index b0909178c..8bbd6e6b1 100644 --- a/iFish7/build.gradle +++ b/iFish7/build.gradle @@ -149,7 +149,9 @@ dependencies { implementation 'com.umeng.umsdk:share-core:7.3.3'//分享核心库,必选 //在线依赖目前支持QQ、微信、新浪微博、支付宝、钉钉、抖音;若需支持其他平台,请选择手动下载SDK implementation 'com.umeng.umsdk:share-wx:7.3.3' //微信完整版 - implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.24' //微信官方依赖库 + implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.24'//微信官方依赖库 + implementation 'androidx.appcompat:appcompat:1.3.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' //友盟分享 // implementation files('libs/umeng_social_sdk.jar') diff --git a/iFish7/src/main/AndroidManifest.xml b/iFish7/src/main/AndroidManifest.xml index c699c5502..f7025e8ed 100644 --- a/iFish7/src/main/AndroidManifest.xml +++ b/iFish7/src/main/AndroidManifest.xml @@ -1,16 +1,17 @@ - - - + + android:targetSdkVersion="21" /> + --> - + @@ -39,10 +39,7 @@ - - - - + @@ -50,13 +47,10 @@ - - - + - - + @@ -64,163 +58,116 @@ - - - - - - + + - - - + android:protectionLevel="signature" /> - - - + - - - + - + android:required="true" /> + --> - - - - - - - - - - + + + + + + - - + - - + - - - - + - + android:maxSdkVersion="32" /> + - - - - - - - + + - - - - - - - + + + - + - - + - - - - - - + + - - - - - - + android:protectionLevel="signature" /> + + - - - - - - - + + + - - - - - + - - - - - - - + + + - + + + + + - - - - - - + + + - - - - - - - - - - + android:theme="@style/Transparent" /> + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + --> - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + - - + - +android:configChanges="keyboardHidden|orientation|screenSize" /> + --> --> - - + android:theme="@android:style/Theme.Translucent.NoTitleBar" /> --> - - - - + + - + android:value="55f7d5bfe0f55a14770001da" /> + android:value="de4784938fdb6302dcfcf8e5c2ebf15d" /> - + android:value="Unknown" /> - + android:value="1a7ef0b4768ac0c95d6abf6e46b8f1d3" /> - + android:value="87b0e3315dfc2df08060bcb54246da68" /> - + - + \ No newline at end of file diff --git a/iFish7/src/main/java/com/ifish/activity/MySettingActivity.java b/iFish7/src/main/java/com/ifish/activity/MySettingActivity.java index 3dd669557..b5f3051a4 100644 --- a/iFish7/src/main/java/com/ifish/activity/MySettingActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/MySettingActivity.java @@ -18,6 +18,8 @@ import android.view.Window; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; +import android.widget.Toast; + import com.ifish.basebean.BaseBean; import com.ifish.basebean.FinishMainActivity; import com.ifish.basebean.Version; @@ -41,7 +43,7 @@ import java.io.File; import java.lang.reflect.Field; import de.greenrobot.event.EventBus; - +import com.ifish.activity.BuildConfig; /** * --------------------------- * 丨你存在 我某一行代码里丨 @@ -49,7 +51,7 @@ import de.greenrobot.event.EventBus; * --------------------------- * * @author Jacky dada - * @Description: TODO + * @Description: 设置页面 * @date 2017/4/18 21:46 */ public class MySettingActivity extends BaseActivity { @@ -62,6 +64,7 @@ public class MySettingActivity extends BaseActivity { NotificationManager mNotificationManager; private SPUtil sp; + private TextView tvDebug; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -70,6 +73,21 @@ public class MySettingActivity extends BaseActivity { sp = SPUtil.getInstance(getApplicationContext()); initListener(); init(); + initDebug(); + } + + private void initDebug() { + if (BuildConfig.DEBUG){ + tvDebug = findMyViewById(R.id.tv_debug); + tvDebug.setVisibility(View.VISIBLE); + tvDebug.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startActivity(new Intent(MySettingActivity.this,PhoneInfoActivity.class)); +// ToastUtil.show(MySettingActivity.this,"跳转到debug页面"); + } + }); + } } private void init() { diff --git a/iFish7/src/main/java/com/ifish/activity/PhoneInfoActivity.java b/iFish7/src/main/java/com/ifish/activity/PhoneInfoActivity.java new file mode 100644 index 000000000..3faf5dee0 --- /dev/null +++ b/iFish7/src/main/java/com/ifish/activity/PhoneInfoActivity.java @@ -0,0 +1,176 @@ +package com.ifish.activity; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import android.content.Context; +import android.content.pm.PackageManager; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; +import android.os.Build; +import android.os.Bundle; +import android.telephony.TelephonyManager; +import android.widget.TextView; +import android.widget.Toast; + +public class PhoneInfoActivity extends AppCompatActivity { + + private TextView textViewModel; + private TextView textViewNetworkInfo; + private TextView tvWifiInfo; + private static final int REQUEST_WIFI_PERMISSION = 1; + private static final int REQUEST_PHONE_PERMISSION = 2; + + private WifiManager wifiManager; + private TelephonyManager telephonyManager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_phone_info); + textViewModel = findViewById(R.id.tvModel); + textViewNetworkInfo = findViewById(R.id.tvNetworkInfo); + tvWifiInfo = findViewById(R.id.tvWifiInfo); + + wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); + telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); + + if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) + != PackageManager.PERMISSION_GRANTED) { + + // Permission is not granted + ActivityCompat.requestPermissions(this, + new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, + REQUEST_WIFI_PERMISSION); + } else { + // Permission has already been granted + getPhoneInfo(); + } + } + + private void getPhoneInfo() { + // 获取设备型号 + String model = Build.MODEL; + textViewModel.setText("设备型号: " + model + "\n"); + // 获取移动网络信息(可选) + if (telephonyManager != null) { + if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { + // Permission is not granted + ActivityCompat.requestPermissions(this, + new String[]{android.Manifest.permission.READ_PHONE_STATE}, + REQUEST_PHONE_PERMISSION); + return; + } + int networkType = telephonyManager.getNetworkType(); + String networkTypeName = getNetworkTypeName(networkType); + textViewModel.append(networkTypeName + "\n"); + } + + // 检查网络连接状态 + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); + boolean isConnected = activeNetwork != null && activeNetwork.isConnected(); + // 显示网络情况 + String networkInfo = isConnected ? "已连接到网络" : "未连接到网络"; + textViewNetworkInfo.setText("网络信息:\n" + "网络情况: " + networkInfo); + // 如果需要,你还可以检查具体的网络类型(如Wi-Fi、移动数据等) + if (isConnected) { + NetworkInfo.State state = activeNetwork.getState(); + if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) { + if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) { + networkInfo = "连接到Wi-Fi网络"; + } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) { + networkInfo = "连接到移动网络"; + } + } + } + textViewNetworkInfo.setText("网络情况: " + networkInfo); + + // 获取WiFi信息 + WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); + WifiInfo info = wifiManager.getConnectionInfo(); + String ssid = info.getSSID(); + int frequency = info.getFrequency(); + + tvWifiInfo.append("SSID: " + ssid + "\n"); + + // 判断WiFi频段(2.4G或5G) + if (frequency >= 2400 && frequency <= 2500) { + tvWifiInfo.append("WiFi Band: 2.4GHz\n"); + } else if (frequency >= 5000 && frequency <= 6000) { + tvWifiInfo.append("WiFi Band: 5GHz\n"); + } else { + tvWifiInfo.append("WiFi Band: Unknown\n"); + } + } + + public String getNetworkTypeName(int networkType) { + String typeName; + String description; + + switch (networkType) { + case TelephonyManager.NETWORK_TYPE_GPRS: + typeName = "GPRS"; + description = "GPRS 是一种基于 GSM 的无线分组交换技术,提供了比传统 GSM 电路交换数据服务更快的数据传输速度。它是 2G 和 2.5G 移动通信技术的一部分。"; + break; + + case TelephonyManager.NETWORK_TYPE_EDGE: + typeName = "EDGE"; + description = "EDGE 是 GPRS 的一个增强版本,提供了更高的数据传输速率,被认为是 2.75G 技术。"; + break; + + case TelephonyManager.NETWORK_TYPE_UMTS: + typeName = "UMTS"; + description = "UMTS 是一种 3G 移动通信技术,包括多种标准,如 WCDMA,提供了更高的数据传输速率和更先进的多媒体服务。"; + break; + + case TelephonyManager.NETWORK_TYPE_HSDPA: + typeName = "HSDPA"; + description = "HSDPA 是 UMTS 家族中的一个增强技术,专注于提供更高的下行链路数据传输速率。它是 3.5G 技术的一部分。"; + break; + + case TelephonyManager.NETWORK_TYPE_HSUPA: + typeName = "HSUPA"; + description = "HSUPA 类似于 HSDPA,但专注于提供更高的上行链路数据传输速率。它也是 3.5G 技术的一部分。"; + break; + + case TelephonyManager.NETWORK_TYPE_HSPA: + typeName = "HSPA"; + description = "HSPA 通常是指结合了 HSDPA 和 HSUPA 的技术,提供了同时增强的上行和下行数据传输速率。"; + break; + + case TelephonyManager.NETWORK_TYPE_LTE: + typeName = "LTE"; + description = "LTE 是一种 4G 无线通信标准,旨在提供比 3G 技术更快的数据传输速率、更低的延迟和更高的系统容量。"; + break; + + // 添加其他网络类型的 case 语句... + + default: + typeName = "未知"; + description = "无法识别的网络类型。"; + break; + } + + return "手机网络类型:" + typeName + " || " + description; + } + + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == REQUEST_WIFI_PERMISSION) { + if (grantResults.length > 0 + && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + // Permission has been granted, update the UI + getPhoneInfo(); + } else { + // Permission denied, Disable the functionality that depends on this permission. + Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show(); + } + } + } + +} \ No newline at end of file diff --git a/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java b/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java index 0159b2d8e..70952a1b3 100644 --- a/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java +++ b/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java @@ -15,6 +15,11 @@ import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.util.Log; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; import androidx.multidex.MultiDexApplication; @@ -24,6 +29,7 @@ import com.alibaba.sdk.android.push.PushControlService; import com.alibaba.sdk.android.push.huawei.HuaWeiRegister; import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory; import com.alibaba.sdk.android.push.register.MiPushRegister; +import com.ifish.activity.BuildConfig; import com.ifish.utils.SystemUtil; import com.p2p.core.P2PSpecial.P2PSpecial; //import com.tencent.bugly.crashreport.CrashReport; @@ -71,11 +77,15 @@ public class BaseApplication extends MultiDexApplication { initLog(); } + /** + * 显示当前Acitivity名字 + */ private void initLog() { registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle bundle) { Log.i("ifish7", "LHD" + "---" + activity.getLocalClassName()); + } @Override @@ -85,7 +95,27 @@ public class BaseApplication extends MultiDexApplication { @Override public void onActivityResumed(Activity activity) { + if (BuildConfig.DEBUG){ + Log.i("ifish7", "LHD" + "debug模式显示当前页面路径:"+activity.getLocalClassName()); + // 创建一个新的TextView + TextView textView = new TextView(activity); + textView.setText(activity.getLocalClassName()); + textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); + textView.setTextColor(Color.YELLOW); + // 设置TextView的布局参数,确保它有一个合适的大小 + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( + FrameLayout.LayoutParams.WRAP_CONTENT, + FrameLayout.LayoutParams.WRAP_CONTENT, + Gravity.TOP | Gravity.START); + // 可以设置具体的边距和位置 + layoutParams.setMargins(10, 10, 10, 10); + textView.setLayoutParams(layoutParams); + // 获取根布局容器 + ViewGroup rootLayout = (ViewGroup) activity.getWindow().getDecorView().findViewById(android.R.id.content); + // 在布局容器的顶部添加TextView + rootLayout.addView(textView); // 0 表示将视图添加到容器的顶部 + } } @Override diff --git a/iFish7/src/main/res/layout/activity_phone_info.xml b/iFish7/src/main/res/layout/activity_phone_info.xml new file mode 100644 index 000000000..ecfbaf42c --- /dev/null +++ b/iFish7/src/main/res/layout/activity_phone_info.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/iFish7/src/main/res/layout/mysetting_activity.xml b/iFish7/src/main/res/layout/mysetting_activity.xml index 682d783c4..49bbbe1bc 100644 --- a/iFish7/src/main/res/layout/mysetting_activity.xml +++ b/iFish7/src/main/res/layout/mysetting_activity.xml @@ -282,5 +282,16 @@ android:src="@drawable/ic_back_right_black" /> + +