Skip to content

Commit

Permalink
尝试修复X5安装问题
Browse files Browse the repository at this point in the history
同时增加了一个安装提示页面
  • Loading branch information
Eanya-Tonic committed Oct 5, 2024
1 parent a79f128 commit dba677b
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 12 deletions.
15 changes: 9 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,15 @@ android {
defaultConfig {
applicationId "com.eanyatonic.cctvViewer"
minSdk 19
targetSdk 32
versionCode 20
versionName "1.7.1"
ndk{abiFilters "armeabi", "armeabi-v7a", "x86", "mips"}
targetSdk 28
versionCode 21
versionName "1.7.2"
ndk{abiFilters "armeabi"}
multiDexEnabled true
}

buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
Expand All @@ -28,6 +27,10 @@ android {
targetCompatibility JavaVersion.VERSION_15
}

lintOptions {
abortOnError false // 允许构建过程中出现 lint 错误
}

}

dependencies {
Expand All @@ -36,7 +39,7 @@ dependencies {
implementation 'com.github.bumptech.glide:glide:4.11.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
// api 'com.tencent.tbs:tbssdk:44286'
implementation files('libs/tbs_sdk_thirdapp_v4.3.0.253_44153_sharewithdownloadwithfile_withoutGame_obfs_20220117_105333.jar')
implementation files('libs/tbs_sdk_thirdapp_v4.3.0.386_44286_sharewithdownloadwithfile_withoutGame_obfs_20230210_114429.jar')
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.preference:preference:1.2.1'
implementation 'androidx.multidex:multidex:2.0.1'
Expand Down
Binary file not shown.
Binary file not shown.
6 changes: 6 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-feature
android:name="android.hardware.touchscreen"
Expand All @@ -20,6 +22,7 @@
android:label="@string/app_name"
android:supportsRtl="true"
android:hardwareAccelerated="true"
android:requestLegacyExternalStorage="true"
android:theme="@style/Theme.央视浏览器">
<activity
android:name=".MainActivity"
Expand All @@ -38,6 +41,9 @@
<activity android:name=".SettingsActivity"
android:theme="@style/SettingsTheme"
android:screenOrientation="landscape"/>
<activity android:name=".LoadingActivity"
android:theme="@style/SettingsTheme"
android:screenOrientation="landscape"/>
<service
android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
android:label="dexopt"
Expand Down
44 changes: 44 additions & 0 deletions app/src/main/java/com/eanyatonic/cctvViewer/LoadingActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.eanyatonic.cctvViewer;

import com.eanyatonic.cctvViewer.FileUtils;
import com.eanyatonic.cctvViewer.MainActivity;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.content.Intent;

import com.tencent.smtt.sdk.QbSdk;
import com.tencent.smtt.sdk.TbsListener;

public class LoadingActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loading);
// 安装TBS内核
QbSdk.reset(MainActivity.get());
QbSdk.installLocalTbsCore(MainActivity.get(), 45738,
FileUtils.getTBSFileDir(MainActivity.get()).getPath() + "/045738_x5.tbs.apk");
QbSdk.setTbsListener(new TbsListener() {
@Override
public void onDownloadFinish(int i) {
Log.e("TAG", "进行了tbs:onDownloadFinish " + i);
}

@Override
public void onDownloadProgress(int i) {
Log.e("TAG", "进行了tbs:onDownloadProgress " + i);
}

@Override
public void onInstallFinish(int i) {
Log.e("TAG", "进行了tbs:onInstallFinish " + i);
Intent intent = new Intent(LoadingActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish(); // 销毁 LoadingActivity
}
});
}
}
36 changes: 31 additions & 5 deletions app/src/main/java/com/eanyatonic/cctvViewer/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package com.eanyatonic.cctvViewer;

import static com.eanyatonic.cctvViewer.FileUtils.copyAssets;
import com.eanyatonic.cctvViewer.FileUtils;

import android.Manifest;
import androidx.core.content.ContextCompat;
import androidx.core.app.ActivityCompat;
import android.content.pm.PackageManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
Expand Down Expand Up @@ -48,6 +52,8 @@ public class MainActivity extends AppCompatActivity {

private AudioManager audioManager;

private static MainActivity instance;

private WebView webView0; // 导入 WebView
private WebView webView1; // 导入备用 WebView
private boolean canLoadX5 = false;
Expand Down Expand Up @@ -132,6 +138,8 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

instance = this; // 将当前实例赋值给静态变量

// 加载设置
// 获取 SharedPreferences
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
Expand Down Expand Up @@ -288,16 +296,19 @@ protected void onCreate(Bundle savedInstanceState) {

// X5内核代码
if (!forceSysWebView) {
copyAssets(this, "045738_x5.tbs.apk", "/data/user/0/com.eanyatonic.cctvViewer/app_tbs/045738_x5.tbs.apk");
requestPermission();
FileUtils.copyAssets(getApplicationContext(), "045738_x5.tbs.apk",
FileUtils.getTBSFileDir(getApplicationContext()).getPath() + "/045738_x5.tbs.apk");

canLoadX5 = QbSdk.canLoadX5(getApplicationContext());
Log.d("canLoadX5", String.valueOf(canLoadX5));
if (canLoadX5) {

CoreText.setText("当前程序运行在腾讯X5内核上");
} else {
Intent intent = new Intent(MainActivity.this, LoadingActivity.class);
startActivity(intent);
finish(); // 销毁 MainActivity
}
QbSdk.installLocalTbsCore(getApplicationContext(), 45738,
"/data/user/0/com.eanyatonic.cctvViewer/app_tbs/045738_x5.tbs.apk");
}

HashMap<String, Object> map = new HashMap<>(2);
Expand Down Expand Up @@ -649,6 +660,10 @@ function AutoFullscreen(){

}

public static MainActivity get() {
return instance;
}

// 启动自动播放定时任务
private void startPeriodicTask() {
// 使用 postDelayed 方法设置定时任务
Expand Down Expand Up @@ -1258,4 +1273,15 @@ protected void onDestroy() {
}
super.onDestroy();
}

private boolean checkPermission() {
return ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
}

private void requestPermission() {
if (!checkPermission()) {
ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE , Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
}
}
17 changes: 17 additions & 0 deletions app/src/main/res/layout/activity_loading.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">

<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="正在安装X5内核,请您稍等..."
android:layout_marginTop="16dp" />
</LinearLayout>
2 changes: 1 addition & 1 deletion app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<Preference
android:key="version"
android:title="版本号"
android:summary="Version 1.7.1" />
android:summary="Version 1.7.2" />
</PreferenceCategory>

</PreferenceScreen>

0 comments on commit dba677b

Please sign in to comment.