api接口总结

1.获取注册的网络信息

TelephonyManager tm= (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
Lst<CellInfo> cellinfos = tm.getAllCellInfo(); 
// androi10之前需要权限ACCESS_COARSE_LOCATION,andrid10开始需要ACCESS_FINE_LOCATION权限,android13上还需要PackageManager.FEATURE_TELEPHONY_RADIO_ACCESS权限
//在phoneInterfaceManager中进行权限判断
for(CellInfo cellinfo : cellinfos){
    if(cellinfo.isRegistered()){//判断是否已经注册
       //CellIdentityGsm ,CellIdentityCdma,CellIdentityTdscdma,CellIdentityWcdma,CellIdentityLte,CellIdentityNr
      // cellIdentity 中包含mcc,mnc,tac,mci等信息
     CellIdentity  cellIdentity =cellinfo.getCellIdentity();
       //同样有Gsm,Cdma,TdScdma,Wcdma,Lte,Nr等 ,cellSignalStrength中包含Rssi,Rssnr,Rsrp,Dbm等信息
     CellSignalStrength cellSignalStrength=cellinfo.getCellSignalStrength();
       break;
    }
}

2.激活去激活卡一卡二

需要使用telephony-ext.jar ,使用系统app或者Settings添加广播接收器

//激活
IExtTelephony extTelephony = IExtTelephony.Stub.asInterface(ServiceManager.getService("extphone"));
                  result = extTelephony.activateUiccCard(slotId);
//去激活
IExtTelephony extTelephony = IExtTelephony.Stub.asInterface(ServiceManager.getService("extphone"));
                  result = extTelephony.deactivateUiccCard(slotId);

3.usb状态获取及模式切换

public void setCurrentFunctions(long function){
        //function: 0代表默认,不用于数据传输,4代表MTP,8代表MIDI,16代表PTP,32代表rndis
        UsbManager usb = (UsbManager) getSystemService(USB_SERVICE);
        usb.setCurrentFunctions(function); //@hide修饰,三方app需使用反射
    }
    public String getCurrentConfig(){
        String value = "test";
        try {
            Class<?> c = Class.forName("android.os.SystemProperties");
            Method get = c.getMethod("get", String.class, String.class );
            value = (String)(get.invoke(c, "sys.usb.config", "unknown" ));
        } catch (Exception e) {
            e.printStackTrace();
 
        }finally {
            return value;
 
        }
    }

4.关闭打开数据业务

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
tm.setDataEnabled(false) ;//关闭  ,需要MODIFY_PHONE_STATE权限
tm.setDataEnabled(true)//打开

5.读取IMEI

TelephonyManager tm =(TelephonyManager) getSystemService(TELEPHONY_SERVICE);
//androd10之前获取READ_PHONE_STATE权限,从android10开始是READ_PRIVILEGED_PHONE_STATE权限,android13上还要求PackageManager.FEATURE_TELEPHONY_GSM
 String imei1= tm.getImei(0);
String imei2= tm.getImei(1);

6.wifi,4G之间切换

INetworkManagementService为NetworkManagementService,需使用services.jar

Network currentNetwork=ConnectivityManager.from(this).getActiveNetwork(); //获取当前激活的网络
Network mobileNetwork,wifiNetwork;
Network[] networks= ConnectivityManager.from(this).getAllNetworks(); //获取所有网络
for(Network network :networks){
   NetworkInfo networkinfo =ConnectivityManager.from(this).getNetworkInfo(network); //获取网络信息
   if(networkinfo.getTypeName().equals("Mobile")&&!networkinfo.getExtraInfo().equals("ims")) { //4G
        mobileNetwork = network ;
   }
   if(networkinfo.getTypeName().equals("Mobile")){
        wifiNetwork =network;
    } 
}
//清空
final INetworkManagementService nms = INetworkManagementService.Stub.asInterface(ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
 nms.clearDefaultNetId();
//切换到4G
int netId= mobileNetwork.netId;
nms.setNetworkPermission(netId,"NETWORK");
nms.setDefaultNetId(netId);
nms.setNetworkPermission(netID,"");

7.设置默认数据卡,电话卡,短信卡

//默认数据卡
 public void setDefaultDataSubId(final int subId) {
        final SubscriptionManager subscriptionManager = SubscriptionManager.from(mContext);
        final TelephonyManager telephonyManager = TelephonyManager.from(mContext);
        subscriptionManager.setDefaultDataSubId(subId);
        telephonyManager.setDataEnabled(true);
    }
//默认电话卡
public void setDefaultCallsSubId(final int subId) {
        final PhoneAccountHandle phoneAccount = subscriptionIdToPhoneAccountHandle(subId);
        final TelecomManager telecomManager = TelecomManager.from(mContext);
        telecomManager.setUserSelectedOutgoingPhoneAccount(phoneAccount);
    }
//默认短信卡
public void setDefaultSmsSubId(final int subId) {
        Log.d(TAG,"setDefaultSmsSubId");
        final SubscriptionManager subscriptionManager = SubscriptionManager.from(mContext);
        subscriptionManager.setDefaultSmsSubId(subId);
    }
public PhoneAccountHandle subscriptionIdToPhoneAccountHandle(final int subId) {
        final TelecomManager telecomManager = TelecomManager.from(mContext);
        final TelephonyManager telephonyManager = TelephonyManager.from(mContext);
 
        for (PhoneAccountHandle handle : telecomManager.getCallCapablePhoneAccounts()) {
            final PhoneAccount phoneAccount = telecomManager.getPhoneAccount(handle);
            if (subId == telephonyManager.getSubIdForPhoneAccount(phoneAccount)) {
                return handle;
            }
        }
        return null;
    }

8.恢复出厂设置

public void FactoryReset(){
       PersistentDataBlockManager pdbManager = (PersistentDataBlockManager) getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
       pdbManager.wipe();    
       Intent intent = new Intent(Intent.ACTION_FACTORY_RESET);
       intent.setPackage("android");
       intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
       intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm");
       intent.putExtra(Intent.EXTRA_WIPE_EXTERNAL_STORAGE, false);
       intent.putExtra(Intent.EXTRA_WIPE_ESIMS, false);
        sendBroadcast(intent);  
    }

9.开关飞行模式

import android.net.ConnectivityManager;
public void setAirplaneMode(boolean b){
       ConnectivityManager.from(this).setAirplaneMode(b);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Web API(Application Programming Interface)即应用程序编程接口,是一种通过网络让不同软件应用之间进行通信和交互的技术。下面以一个实例来说明Web API接口开发过程。 假设我们要开发一个在线书店的网站,其中需要提供一个Web API接口让其他应用可以获得书籍的信息。 首先,我们需要确定API的功能和所需数据。比如,我们需要提供获取所有图书信息的接口、获取某一本图书的接口等。 然后,我们来构建API接口。通常使用HTTP协议进行通信,可以使用各种编程语言(如Java、Python)来开发API。我们可以使用一个框架(如Spring Boot)来简化开发过程。 在开发过程中,我们需要定义API的URL地址、请求的方法(如GET、POST)、参数、返回的数据格式等。比如,获取所有图书信息的接口可以定义为GET请求,URL为“/books”,返回的数据格式可以使用JSON。 接下来,我们需要编写代码来实现API的功能。比如,获取所有图书信息的接口可以查询数据库,并将结果转换为JSON格式返回给调用者。 在编码完成后,我们可以进行测试。可以使用一些工具(如Postman)来发送HTTP请求,验证是否能够正确获取到数据。 最后,我们将API部署到服务器上,供其他应用调用。通常,可以使用一些云服务提供商(如Amazon Web Services、Microsoft Azure)来部署和管理API总结起来,Web API接口开发实例包括确定API功能和数据、构建API接口、编写代码实现功能、测试以及部署到服务器上。通过开发Web API接口,我们可以实现应用之间的数据交互和协作,提供更加丰富和便捷的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值