pull/149/head
FongMi 3 years ago
parent b02ea5f04e
commit 2ec5acceb2
  1. 68
      thunder/src/main/java/com/xunlei/downloadlib/XLDownloadManager.java
  2. 2
      thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java
  3. 74
      thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java

@ -1,11 +1,7 @@
package com.xunlei.downloadlib;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.util.Log;
import com.github.catvod.Init;
import com.github.catvod.utils.Prefers;
@ -27,10 +23,7 @@ import com.xunlei.downloadlib.parameter.XLTaskLocalUrl;
public class XLDownloadManager {
private final String TAG = XLDownloadManager.class.getSimpleName();
private XLLoader loader;
private NetworkChangeReceiver receiver;
private Context context;
public XLDownloadManager() {
@ -41,47 +34,23 @@ public class XLDownloadManager {
public void init() {
InitParam param = new InitParam(context.getFilesDir().getPath());
loader.init(param.getSoKey(), "com.android.providers.downloads", param.mAppVersion, "", getPeerId(), getGuid(), param.mStatSavePath, param.mStatCfgSavePath, XLUtil.getNetworkType(context), param.mPermissionLevel, param.mQueryConfOnInit);
loader.init(param.getSoKey(), "com.android.providers.downloads", param.mAppVersion, "", getPeerId(), getGuid(), param.mStatSavePath, param.mStatCfgSavePath, 0, param.mPermissionLevel, param.mQueryConfOnInit);
getDownloadLibVersion(new GetDownloadLibVersion());
setOSVersion(Build.VERSION.INCREMENTAL + "_alpha");
setLocalProperty("PhoneModel", Build.MODEL);
setStatReportSwitch(false);
setSpeedLimit(-1, -1);
registerReceiver();
}
public void release() {
if (loader != null) loader.unInit();
unregisterReceiver();
context = null;
loader = null;
}
private void registerReceiver() {
receiver = new NetworkChangeReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
context.registerReceiver(receiver, intentFilter);
}
private void unregisterReceiver() {
try {
context.unregisterReceiver(receiver);
} catch (Exception ignored) {
}
}
private void notifyNetWorkType(int type) {
try {
loader.notifyNetWorkType(type);
} catch (Error e) {
Log.e(TAG, "notifyNetWorkType failed," + e.getMessage());
}
}
private String getPeerId() {
String uuid = Prefers.getString("phoneId5", "");
if (uuid.isEmpty()) Prefers.put("phoneId5", XLUtil.getPeerId());
if (uuid.isEmpty()) Prefers.put("phoneId5", uuid = XLUtil.getPeerId());
return uuid;
}
@ -113,18 +82,6 @@ public class XLDownloadManager {
loader.setOriginUserAgent(taskId, userAgent);
}
private void notifyNetWorkCarrier(int carrier) {
loader.setNotifyNetWorkCarrier(carrier);
}
private void notifyWifiBSSID(String bssid) {
try {
loader.setNotifyWifiBSSID(bssid);
} catch (Error e) {
Log.e(TAG, "setNotifyWifiBSSID failed," + e.getMessage());
}
}
public void setDownloadTaskOrigin(long taskId, String str) {
loader.setDownloadTaskOrigin(taskId, str);
}
@ -192,25 +149,4 @@ public class XLDownloadManager {
public void setSpeedLimit(long min, long max) {
loader.setSpeedLimit(min, max);
}
private class NetworkChangeHandlerThread implements Runnable {
@Override
public void run() {
notifyNetWorkCarrier(XLUtil.getNetWorkCarrier(context).ordinal());
notifyNetWorkType(XLUtil.getNetworkType(context));
notifyWifiBSSID(XLUtil.getBSSID(context));
}
}
private class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action != null && action.equals("android.net.conn.CONNECTIVITY_CHANGE")) {
new Thread(new NetworkChangeHandlerThread()).start();
}
}
}
}

@ -97,7 +97,7 @@ public class XLTaskHelper {
TorrentFileInfo[] fileInfos = torrentInfo.mSubFileInfo;
BtTaskParam taskParam = new BtTaskParam();
taskParam.setCreateMode(1);
taskParam.setMaxConcurrent(10);
taskParam.setMaxConcurrent(3);
taskParam.setSeqId(getSeq().incrementAndGet());
taskParam.setFilePath(savePath.getAbsolutePath());
taskParam.setTorrentPath(torrent.getAbsolutePath());

@ -1,11 +1,5 @@
package com.xunlei.downloadlib.android;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.telephony.TelephonyManager;
import android.util.Base64;
import java.util.Random;
@ -38,57 +32,6 @@ public class XLUtil {
return getIMEI() + "_" + getMAC();
}
public static String getBSSID(Context context) {
WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (connectionInfo != null) return connectionInfo.getBSSID();
return null;
}
public static int getNetworkType(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null) {
return 0;
}
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo == null) {
return 0;
}
int type = activeNetworkInfo.getType();
if (type == 1) {
return 9;
}
if (type != 0) {
return 5;
}
int i;
switch (activeNetworkInfo.getSubtype()) {
case 1:
case 2:
case 4:
case 7:
case 11:
return 2;
case 3:
case 5:
case 6:
case 8:
case 9:
case 10:
case 12:
case 14:
case 15:
return 3;
case 13:
i = 4;
break;
default:
i = 0;
break;
}
return i;
}
public static String generateAppKey(String str, short s, byte b) {
int length = str.length();
int i = length + 1;
@ -101,21 +44,4 @@ public class XLUtil {
bArr[length + 3] = b;
return new String(Base64.encode(bArr, 0)).trim();
}
public static NetWorkCarrier getNetWorkCarrier(Context context) {
try {
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String subscriberId = manager.getSubscriberId();
if (subscriberId.startsWith("46000") || subscriberId.startsWith("46002")) return NetWorkCarrier.CMCC;
if (subscriberId.startsWith("46001")) return NetWorkCarrier.CU;
if (subscriberId.startsWith("46003")) return NetWorkCarrier.CT;
return NetWorkCarrier.UNKNOWN;
} catch (Exception e) {
return NetWorkCarrier.UNKNOWN;
}
}
public enum NetWorkCarrier {
UNKNOWN, CMCC, CU, CT
}
}

Loading…
Cancel
Save