http://sizeed.blog.163.com/blog/static/965254512011102494433985/

做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能。

TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
numberText.setText(tm.getLine1Number());

红色标记函数能够获取本机号码。

除此之外,TelephonyManager类还提供了多种获取手机信息的函数,入imei、imsi等。、

看代码:

package com.pingan.innovation;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class PhoneInfo extends Activity {
 private TextView numberText;
 private TextView imeiText;
 private TextView onText;
 private TextView snText;
 private TextView imsiText;
 private TextView ssText;
 private TextView ntText;
 
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      
        numberText = (TextView) findViewById(R.id.numberText);
        imeiText = (TextView) findViewById(R.id.imeiText);
        onText = (TextView) findViewById(R.id.onText);
        snText = (TextView) findViewById(R.id.snText);
        imsiText = (TextView) findViewById(R.id.imsiText);
        ssText = (TextView) findViewById(R.id.ssText);
        ntText = (TextView) findViewById(R.id.ntText);
        TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
        numberText.setText(tm.getLine1Number());
        imeiText.setText(tm.getDeviceId());
        onText.setText(tm.getNetworkOperatorName());
        snText.setText(tm.getSimSerialNumber());
        imsiText.setText(tm.getSubscriberId());
        ssText.setText(tm.getNetworkCountryIso());
        ntText.setText(tm.getNetworkOperator());
    }
}

以上几个函数分别获取的是:

手机号码、imei、运营商名称、sim卡序列号、IMSI、sim卡所在国家、运营商编号。

对了,AndroidManifest.xml里面还需加上:<uses-permission android:name="android.permission.READ_PHONE_STATE" />

这样才能有对手机信息的访问权限。

不过,经过在HTC Hero真机上的测试,发现获取不到手机号码。

在Ophone系统的多普达A6188上测试,同样也取不到手机号码。

Build bd = new Build();

String model = bd.MODEL;

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

StringBuilder sb = new StringBuilder();

sb.append("\nDeviceId(IMEI) = " + tm.getDeviceId());

sb.append("\nDeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion());

sb.append("\nLine1Number = " + tm.getLine1Number());

sb.append("\nNetworkCountryIso = " + tm.getNetworkCountryIso());

sb.append("\nNetworkOperator = " + tm.getNetworkOperator());

sb.append("\nNetworkOperatorName = " + tm.getNetworkOperatorName());

sb.append("\nNetworkType = " + tm.getNetworkType());

sb.append("\nPhoneType = " + tm.getPhoneType());

sb.append("\nSimCountryIso = " + tm.getSimCountryIso());

sb.append("\nSimOperator = " + tm.getSimOperator());

sb.append("\nSimOperatorName = " + tm.getSimOperatorName());

sb.append("\nSimSerialNumber = " + tm.getSimSerialNumber());

sb.append("\nSimState = " + tm.getSimState());

sb.append("\nSubscriberId(IMSI) = " + tm.getSubscriberId());

sb.append("\nVoiceMailNumber = " + tm.getVoiceMailNumber());

Log.v("DeviceInfo", sb.toString());

Log.v("Model", model);

this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(

Intent.ACTION_BATTERY_CHANGED));//获得电量

BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {//广播出电量值

@Override

public void onReceive(Context arg0, Intent intent) {

batterylevel = intent.getIntExtra("level", 0);

updateBatteryStatsBylevel(batterylevel);

TitleInfo.batterylevel = batterylevel;

Log.i("batterylevel_value", String.valueOf(batterylevel));

}

};

package maximyudin.BatteryLevel;

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.Bundle;

import android.widget.TextView;

public class BatteryLevel extends Activity {

private TextView tvBatteryLevel;

private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {

int level = intent.getIntExtra("level", 0);

int scale = intent.getIntExtra("scale", 100);

tvBatteryLevel.setText("Battery level: "

+ String.valueOf(level * 100 / scale) + "%");

}

}

};

@Override

public void onResume() {

super.onResume();

registerReceiver(mBatteryInfoReceiver, new IntentFilter(

Intent.ACTION_BATTERY_CHANGED));

}

@Override

public void onPause() {

super.onPause();

unregisterReceiver(mBatteryInfoReceiver);

}

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvBatteryLevel = (TextView) findViewById(R.id.tvBatteryLevel);

}

}

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/tvBatteryLevel" android:text="Battery level:"/>

</LinearLayout>

Android获取手机卡相关信息
<!-- 联网权限 -->
<uses-permission
android:name="android.permission.INTERNET" />
<!-- 获取机型信息权限 -->
<uses-permission
android:name="android.permission.READ_PHONE_STATE" />
<!-- 获取短信发送权限 -->
<uses-permission
android:name="android.permission.SEND_SMS" />

package com.mc;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.telephony.TelephonyManager;

import android.widget.TextView;

public class TelManager extends Activity {

TextView textView01 = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

textView01 = (TextView) this.findViewById(R.id.textView01);

//  getPhoneNumber();

fetch_status();

System.out.println("-------------------onCreate");

}

public void getPhoneNumber() {

// 获取手机号、手机串号信息

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

String imei = tm.getDeviceId();

String tel = tm.getLine1Number();

textView01.setText("手机串号:" + imei + "\n" + "手机号:" + tel + "\n");

}

public void fetch_status() {

TelephonyManager tm = (TelephonyManager) this

.getSystemService(Context.TELEPHONY_SERVICE);//

String str = "";

str += "DeviceId(IMEI) = " + tm.getDeviceId() + "\n";

str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()

+ "\n";

str += "Line1Number = " + tm.getLine1Number() + "\n";

str += "NetworkCountryIso = " + tm.getNetworkCountryIso() + "\n";

str += "NetworkOperator = " + tm.getNetworkOperator() + "\n";

str += "NetworkOperatorName = " + tm.getNetworkOperatorName() + "\n";

str += "NetworkType = " + tm.getNetworkType() + "\n";

str += "honeType = " + tm.getPhoneType() + "\n";

str += "SimCountryIso = " + tm.getSimCountryIso() + "\n";

str += "SimOperator = " + tm.getSimOperator() + "\n";

str += "SimOperatorName = " + tm.getSimOperatorName() + "\n";

str += "SimSerialNumber = " + tm.getSimSerialNumber() + "\n";

str += "SimState = " + tm.getSimState() + "\n";

str += "SubscriberId(IMSI) = " + tm.getSubscriberId() + "\n";

str += "VoiceMailNumber = " + tm.getVoiceMailNumber() + "\n";

textView01.setText(str);

}

}

在Android中以上机型信息在手机状态Status里
Settings->About Phone->Status
各个栏目的功能介绍如下:
Battery status:电池充电/未充电状态
Battery level:电池剩余电量
Phone number:手机序列号
Network:所处的移动网络
Signal strength:信号度
Network type:网络制式
Service state:所在服务区
Roaming:漫游/未漫游
Data access:共访问的数据大小
IMEI:IMEI码
IMEI SV:IMEI码的版本
IMSI:国际移动用户识别码
Wi-Fi Mac address:G1无线Wi-Fi网络的Mac地址。
Bluetooth address:蓝牙地址
Up time:正常运行时间
Awake Time:手机唤醒时间

android 获取当前手机型号:

Build bd = new Build();
        Log.i("info", bd.MODEL+":"+bd.DEVICE+":"+bd.PRODUCT);

手机的品牌:

Build.MODEL   android.os.Build.MODEL

【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下

view plaincopy to clipboardprint?

1.     PackageManager packageManager = this.getPackageManager();

2.     List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(0);

通过以上方法,可以得到手机中安装的所有应用程序,既包括了手动安装的apk包的信息,也包括了系统预装的应用软件的信息,要区分这两类软件可使用以下方法:

a.从packageInfoList获取的packageInfo,再通过packageInfo.applicationInfo获取applicationInfo。

b.判断(applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)的值,该值大于0时,表示获取的应用为系统预装的应用,反之则为手动安装的应用。

大家可以看下代码,说明已经写在注释中。

获取应用的代码:

view plaincopy to clipboardprint?

1.     /**

2.      * 查询手机内非系统应用

3.      * @param context

4.      * @return

5.      */

6.     public static List<PackageInfo> getAllApps(Context context) {

7.         List<PackageInfo> apps = new ArrayList<PackageInfo>();

8.         PackageManager pManager = context.getPackageManager();

9.         //获取手机内所有应用

10.      List<PackageInfo> paklist = pManager.getInstalledPackages(0);

11.      for (int i = 0; i < paklist.size(); i++) {

12.          PackageInfo pak = (PackageInfo) paklist.get(i);

13.          //判断是否为非系统预装的应用程序

14.          if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {

15.              // customs applications

16.              apps.add(pak);

17.          }

18.      }

19.      return apps;

20.  }

获取图片、应用名、包名:

view plaincopy to clipboardprint?

1.     PackageManager pManager = MessageSendActivity.this.getPackageManager();

2.     List<PackageInfo> appList  = Utils.getAllApps(MessageSendActivity.this);

3.

4.     for(int i=0;i<appList.size();i++) {

5.         PackageInfo pinfo = appList.get(i);

6.         ShareItemInfo shareItem = new ShareItemInfo();

7.         //set Icon

8.      shareItem.setIcon(pManager.getApplicationIcon(pinfo.applicationInfo));

9.         //set Application Name

10.      shareItem.setLabel(pManager.getApplicationLabel(pinfo.applicationInfo).toString());

11.      //set Package Name

12.      shareItem.setPackageName(pinfo.applicationInfo.packageName);

13.

14.  }

其中 ShareItemInfo 类是我本地自定义的,各位可以忽略!

另为,有人可能在找 分享应用列表,在此一并说下吧。

获取支持分享的应用的代码:

view plaincopy to clipboardprint?

1.     /**

2.      * 查询手机内所有支持分享的应用

3.      * @param context

4.      * @return

5.      */

6.     public static List<ResolveInfo> getShareApps(Context context){

7.         List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();

8.         Intent intent=new Intent(Intent.ACTION_SEND,null);

9.         intent.addCategory(Intent.CATEGORY_DEFAULT);

10.      intent.setType("text/plain");

11.      PackageManager pManager = context.getPackageManager();

12.      mApps = pManager.queryIntentActivities(intent,PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);

13.

14.      return mApps;

15.  }

由于该方法,返回的并不是 PackageInfo 对象。而是 ResolveInfo。因此获取图片、应用名、包名的方法不一样,如下:

view plaincopy to clipboardprint?

1.     PackageManager pManager = MessageSendActivity.this.getPackageManager();

2.

3.     /*********************查询手机内所有支持分享的应用*********************/

4.     List<ResolveInfo> resolveList  = Utils.getShareApps(MessageSendActivity.this);

5.

6.     for(int i=0;i<resolveList.size();i++) {

7.         ResolveInfo resolve = resolveList.get(i);

8.         ShareItemInfo shareItem = new ShareItemInfo();

9.         //set Icon

10.   shareItem.setIcon(resolve.loadIcon(pManager));

11.      //set Application Name

12.      shareItem.setLabel(resolve.loadLabel(pManager).toString());

13.      //set Package Name

14.      shareItem.setPackageName(resolve.activityInfo.packageName);

15.

16.  }

--------------------------------------------------------------------------------

总结:

通过 PackageInfo  获取具体信息方法:

包名获取方法:packageInfo.packageName

icon获取获取方法:packageManager.getApplicationIcon(applicationInfo)

应用名称获取方法:packageManager.getApplicationLabel(applicationInfo)

使用权限获取方法:packageManager.getPackageInfo(packageName,PackageManager.GET_PERMISSIONS)

.requestedPermissions

通过 ResolveInfo 获取具体信息方法:

包名获取方法:resolve.activityInfo.packageName

icon获取获取方法:resolve.loadIcon(packageManager)

应用名称获取方法:resolve.loadLabel(packageManager).toString()

Android获取手机和系统版本等信息的代码
有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息,对比两部手机发现,厂商不同,某个信息显示方式也不尽相同,具体见:

String phoneInfo = "Product: " + android.os.Build.PRODUCT;
        phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;
        phoneInfo += ", TAGS: " + android.os.Build.TAGS;
        phoneInfo += ", VERSION_CODES.BASE: " + android.os.Build.VERSION_CODES.BASE;
        phoneInfo += ", MODEL: " + android.os.Build.MODEL;
        phoneInfo += ", SDK: " + android.os.Build.VERSION.SDK;
        phoneInfo += ", VERSION.RELEASE: " + android.os.Build.VERSION.RELEASE;
        phoneInfo += ", DEVICE: " + android.os.Build.DEVICE;
        phoneInfo += ", DISPLAY: " + android.os.Build.DISPLAY;
        phoneInfo += ", BRAND: " + android.os.Build.BRAND;
        phoneInfo += ", BOARD: " + android.os.Build.BOARD;
        phoneInfo += ", FINGERPRINT: " + android.os.Build.FINGERPRINT;
        phoneInfo += ", ID: " + android.os.Build.ID;
        phoneInfo += ", MANUFACTURER: " + android.os.Build.MANUFACTURER;
        phoneInfo += ", USER: " + android.os.Build.USER;
        // Toast.makeText(this, phoneInfo, Toast.LENGTH_LONG).show();
        TextView t = (TextView) findViewById(R.id.main_phoneinfo);
        t.setText(phoneInfo);

android 获取手机信息(device ip,os version etc.)
好久没有写东西了,今天在做pv log记录,需要记录机器的os version, 机器的wifi IP address, 当前时间等等。 调查了一下,分享分享:

package com.osip;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.app.Activity;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.TextView;

public class Osip extends Activity {
    private TextView osVersion, clientIp, date;

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        osVersion = (TextView) findViewById(R.id.os_version);
        clientIp = (TextView) findViewById(R.id.client_ip);
        date = (TextView) findViewById(R.id.date);

String format = "yyyyMMdd.HHmmss.SSSZ";// 带毫秒和时区的时间格式
        String version = getosVersion();
        String ip = getIp();
        String cDate = getDate(new Date(), format);
        
        osVersion.setText(version);
        clientIp.setText(ip);
        date.setText(cDate.substring(0, 22));
    }

private String getDate(Date date, String format) {
        DateFormat dateFormat = new SimpleDateFormat(format);
        return dateFormat.format(date);
    }

// 取得device的IP address
    private String getIp() {
        WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        int ipAddress = wifiInfo.getIpAddress();
        
        // 格式化IP address,例如:格式化前:1828825280,格式化后:192.168.1.109
        String ip = String.format("%d.%d.%d.%d",
                (ipAddress & 0xff),
                (ipAddress >> 8 & 0xff),
                (ipAddress >> 16 & 0xff),
                (ipAddress >> 24 & 0xff));
        return ip;
        
    }

//获取device的os version
    private String getosVersion() {
        String version = android.os.Build.VERSION.RELEASE;
        return version;
    }
}

在android系统中获取imei号和其他手机信息
如果需要通过android SDK获取手机相关信息。需要通过如下方式获取:

TelephonyManager telephonyManager=(TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);String imei=telephonyManager.getDeviceId(); 不过,光这么写,会有类似如何查看android产生的异常的报错,主要是因为android的权限需要打开,在AndroidManifest.xml文件中增加:

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 就可以拿到手机的imei号了。

TelephonyManager还有其他方法可以调用,获取手机的其他信息。

比如获取手机号码,可以这样:

telephonyManager.getLine1Number();

不过在g1手机上测试,使用移动全球通的sim卡,无法得到手机号码,是个空字符串。

获取手机的sim卡号:

telephonyManager.getSimSerialNumber();

这个可以在上述环境下得到。

获取客户id,在gsm中是imsi号:

telephonyManager.getSubscriberId();

这个也能在商户环境得到。

android手机获取手机唯一识别号
在开发手机应用时,开发者最关心的是开发的手机软件有多少用户安装,并且正在使用。这就需要识别手机的唯一性。目前我了解的有两种方法,

获取手机的imei号(imei号是唯一识别手机的号码)。
获取android id号(android id 是手机系统的唯一号码)。
第一种方法:

android获取手机imei号的方法在在android系统中获取imei号和其他手机信息一文中做了详细的介绍。其中android在2.0以上的版本中,获取手机imei号已经不需要相应的读取手机信息的权限了。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

但是目前1.6以下的版本用户占用户的近50%,如果想要让1.6以下版本的用户也可以获取imei号,那就要添加权限。

好处是唯一标识手机,缺点是可能需要相应的用户权限。

第二种方法:

可以获取android id号,如果一个手机设备第一次启动随即产生的一个数字,如果系统改变,该号可能会改变。

android id号解释:http://androidappdocs-staging.appspot.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

获取方法:

String t=android.provider.Settings.System.getString(getContentResolver(), "android_id");
      Log.i("huilurry","android_id="+t);

Ms测试结果:

07-13 13:12:49.835: INFO/huilurry(17455): android_id=20014289e714f20c

好处是所有版本都试用,缺点是可能会和其他机子重复或本机改变。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

android获取手机唯一识别号相关推荐

  1. android 获取手机唯一识别码

    //如果获取不到imsi号,就拼接其它信息获取唯一码: 结论是,依然有部分手机获取不到. final TelephonyManager tm = (TelephonyManager) getBaseC ...

  2. 有关获取android唯一识别号IMEI的问题

    最近开发一个项目需要两个手机app互相通信,在一个手机不同的app之前通信可以用aidl,在不同的手机通信就需要用到网络(除通过运营商之外),我用的是socket通信,那么涉及到一个问题,服务器收到了 ...

  3. 获取android型号代码,Android应用开发之Android获取手机品牌、手机型号、手机唯一序列号的代码教程...

    本文将带你了解Android应用开发Android获取手机品牌.手机型号.手机唯一序列号的代码教程,希望本文对大家学Android有所帮助. Android获取手机品牌.手机型号.手机唯一序列号的代码 ...

  4. android 6.0获取手机imei,android获取手机信息大全,android获取大全,IMEI号,IESI号,...

    android获取手机信息大全,android获取大全,IMEI号,IESI号, IMEI号,IESI号,手机型号: [java] view plaincopyprint?private void g ...

  5. android设备id完美解决方法,安卓获取渠道名渠道id Android获取设备唯一标识的终极解决方法,防止安卓7.0时崩溃问题...

    一,先说获取渠道名(这里以友盟为例) /* * 4.5.1新加渠道名字段,用来传给后台去统计各个渠道下载量 * */ public static String getSource() { //获取渠道 ...

  6. 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://2402766.blog.51cto.com/2392766/1080837 为了 ...

  7. Qt for Android获取手机序列号/手机型号/手机制造商

    前言 Qt for Android 获取手机型号/手机制造商/手机序列号,这些是要通过 Android 原生接口才能获取到的, 那么在 Qt 项目中通过 jni 接口调用 Android 原生接口来获 ...

  8. android 获取手机运行的进程

    今天,简单讲讲如何获取系统运行的进程. ActivityManager.RunningAppProcessInfo类与获取正在运行的应用程序 每一个应用程序都会运行在它独立的进程里,但是为了节省资源或 ...

  9. android 获取已安装 错误代码,android获取手机已经安装的app信息

    Android获取手机已安装APP(系统/非系统) 效果图 主体代码 private ListView mlistview; private ListpackageInfoList; private ...

  10. Android获取手机序列号

    Android获取手机序列号 String androidId = null; androidId = Secure.getString(getContentResolver(), Secure.AN ...

最新文章

  1. linux 文件目录
  2. tp5某个字段相同的数据只取一次_多维分析数据仓库建设建议-面向主题的建模...
  3. mysql中00933错误_ORA-00933: SQL command not properly ended
  4. mysql忘记root密码解决办法
  5. 云栖社区云栖号(团队博客)攻略【2018版】
  6. 特征计算 -获取本周,本月初,本月末,上月同日,本季,本年初,本年末的日期 - (Python、MySQL、Oracle)
  7. 攻防世界逆向——key
  8. iPhone 屏幕适配尺寸整理
  9. P1129 矩阵游戏
  10. 纬湃科技助力打造气候中和汽车;铁姆肯收购美国滚子轴承公司 | 美通企业日报...
  11. 贪吃蛇之一维数组实现
  12. 51单片机WIFI手机APP智能窗户窗帘控制系统手动自动定时
  13. CAD——MV视口与图层
  14. 全球与中国标准轻触开关市场现状及未来发展趋势
  15. \t\t开心学国学(转载)
  16. 哀嚎遍野!学妹跟学弟分手了,因为JavaEE期末课设SSM太难了!呜呼哀哉!
  17. 交换机 几个端口镜像 已经存在端口镜像 一对多端口镜像 启明星辰 天清 负载均衡 端口镜像 天清汉马 USG 防火墙
  18. 电子学习电子设计竞赛必会元件清单!!!
  19. linux使用jq时提示error: split is not defined
  20. html li是块级元素,li是行内元素吗?

热门文章

  1. linux 回收站恢复文件怎么恢复文件,清空回收站后如何恢复已被删除的文件?
  2. SpringBoot整合腾讯云短信服务实现发送短信功能(一篇就够了)
  3. DM6437 720P调试问题记录
  4. 如何求解最大公约数和最小公倍数
  5. 【计算机前沿知识】大数据与数据挖掘
  6. 解决window10系统电脑插入耳机之后没有声音的问题
  7. python爬虫 | 同步刷新网页爬取实例 | 小白篇
  8. App邀请机制下,策略决定成败
  9. 系统论的应用——心理学
  10. 微信公众号测试号申请