Android APN设置及获得手机号

 

目前供职于电信,只做电信的业务,故列表中只有电信的APN信息

  Java代码

  /**

  * 电信APN列表

  * @author wudongdong

  *

  */

  public class APNNET {

  public static String CTWAP="ctwap";

  public static String CTNET="ctnet";

  }

  /**

  * 电信APN列表

  * @author wudongdong

  *

  */

  public class APNNET {

  public static String CTWAP="ctwap";

  public static String CTNET="ctnet";

  }获得APN的类型

  Java代码

  /**

  * 获得APN类型

  * @author wudongdong

  *

  */

  public class ApnUtil {

  private static Uri PREFERRED_APN_URI = Uri

  .parse("content://telephony/carriers/preferapn");

  /**

  * get apntype

  * @param context

  * @return

  */

  public static String getApnType(Context context){

  String apntype="nomatch";

  Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,

  null, null, null, null);

  c.moveToFirst();

  String user=c.getString(c.getColumnIndex("user"));

  if(user.startsWith(APNNET.CTNET)){

  apntype=APNNET.CTNET;

  }else if(user.startsWith(APNNET.CTWAP)){

  apntype=APNNET.CTWAP;

  }

  return apntype;

  }

  }

  /**

  * 获得APN类型

  * @author wudongdong

  *

  */

  public class ApnUtil {

  private static Uri PREFERRED_APN_URI = Uri

  .parse("content://telephony/carriers/preferapn");

  /**

  * get apntype

  * @param context

  * @return

  */

  public static String getApnType(Context context){

  String apntype="nomatch";

  Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,

null, null, null, null);

  c.moveToFirst();

  String user=c.getString(c.getColumnIndex("user"));

  if(user.startsWith(APNNET.CTNET)){

  apntype=APNNET.CTNET;

  }else if(user.startsWith(APNNET.CTWAP)){

  apntype=APNNET.CTWAP;

  }

  return apntype;

  }

  }

  获得手机号码的话可以传IMSI码到指定接口,接口地址不方便说。

  但可以透露一点,必须走CTWAP,这也是判断APN类型的原因

  发现很多应用如果APN是走代理的话就不能联网,那么再介绍一下用APN设置网络的代理信息。

  Java代码

  Cursor c = context.getContentResolver().query(PREFERRED_APN_URI,

  null, null, null, null);

  c.moveToFirst();

  String proxy=c.getString(c.getColumnIndex("proxy"));

  if (!"".equals(proxy) && proxy!=null) {

  Properties prop = System.getProperties();

  System.getProperties().put("proxySet", "true");

  prop.setProperty("http.proxyHost", c.getString(c

  .getColumnIndex("proxy")));

  prop.setProperty("http.proxyPort", c.getString(c

  .getColumnIndex("port")));

  String authentication = c.getString(c.getColumnIndex("user"))

  + ":" + c.getString(c.getColumnIndex("password"));

  String encodedLogin = Base64.encode(authentication);

  uc.setRequestProperty("Proxy-Authorization", " BASIC "

  + encodedLogin);

  }

  c.close();

时间: 2024-10-25 19:35:36

Android APN设置及获得手机号的相关文章

Android中使用 AutoCompleteTextView 实现手机号格式化附带清空历史的操作

有个小伙伴遇到了这样一个问题,就是AutoCompleteTextView实现自动填充的功能.同时要具备手机格式化的功能.下拉列表最后一行是有个清除历史的功能.可是点击"清除历史"却把文字要设置进去AutoCompleteTextView中.这样的效果显然很糟糕.所以我就写了这样一个简单的demo.来帮助遇到这种问题的朋友解决这样一个问题.二话不多说直接上代码. 布局文件(activity_main.xml)代码如下: <?xml version="1.0"

应用-android中设置支持javascript会引入xss变量到你的程序中,请检查清楚

问题描述 android中设置支持javascript会引入xss变量到你的程序中,请检查清楚 Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application, review carefully. 如何理解上面这句英语啊?? 解决方案 你指的是在webView上设置支持JavaScript么? 解决方案二: @SuppressLint("SetJavaScriptEnabled") 忽略

Android编程设置全屏的方法实例

  Android编程设置全屏的方法实例          本文实例讲述了Android编程设置全屏的方法.分享给大家供大家参考,具体如下: 在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果.其一,通过在代码中可以设置,其二,通过manifest配置文件来设置全屏. 其一:在代码中设置(如下) package xiaohang.zhimeng; import android.app.Activity; import andr

android开发设置在线隐身按钮

问题描述 android开发设置在线隐身按钮 本文在开发一个android聊天软件,类似android qq,现在界面的结构框架差不多搭起来了,想请问一下类似qq上的那个设置在线隐身忙碌的按钮是如何实现的,我本打算点击那个按钮弹出一个alertdialog,但显示的效果与qq完全不一样,请哪位大神帮个忙,在下感激不尽. 解决方案 http://blog.sina.com.cn/s/blog_5fc933730100qhhh.html

显示-Android怎么设置文本框里的文字区间?

问题描述 Android怎么设置文本框里的文字区间? 如图,想让文字只显示在红色框以内,应该怎么设置. 解决方案 设置android:paddingleft和android:paddingRight 解决方案二: padding或margin 解决方案三: 在编辑框的布局文件上设置margin:left属性20dp左右 解决方案四: android:paddingLeft=""15dp""; ? 解决方案五: 在布局里可以设置padding或margin用法和div

android闹钟-我勒个缺android 闹钟设置异常!!!!!alarmManger所发送的广播启动一个activity

问题描述 我勒个缺android 闹钟设置异常!!!!!alarmManger所发送的广播启动一个activity 虚拟机上没问题,一到手机上就各种问题,我的android5.1手机上不是准点报时,要晚4分钟,我的Android5.0系统里无视定点直接报时.我真没辙了. 解决方案 Android闹钟 AlarmManager的使用 AlarmManager介绍 AlarmManager这个类提供对系统闹钟服务的访问接口. 你可以为你的应用设定一个在未来某个时间唤醒的功能. 当闹钟响起,实际上是系

Android Studio(八):Android Studio设置教程

Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Android Studio编码 Android Studio(四):Android Studio集成Genymotion Android Studio(五):修改Android Studio项目包名 Android Studio(六):Android Studio添加注释模板 Android Studio

android textview设置字体的行距和字间距_Android

字间距 textView有一个属性android:textScaleX是调节字间距的,它的值是一个float型.查看源代码,默认textView 此属性是使用的是: android.internal.R.styleable.TextView_textScaleX setTextScaleX(a.getFloat(attr, 1.0f)); 行间距 Android系统中TextView默认显示中文时会比较紧凑,不是很美观.为了让每行保持一定的行间距,可以设置属性android:lineSpacin

Android TextView 设置字体大小的方法_Android

废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.example.yanlei.yl4; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Spannable; import android.text.style.AbsoluteSizeSpan; import and