在Android上以编程方式设置APN

Rem*_*van 6 android

在我的Android应用程序中,我想获得所有可用的APN并检查客户端APN是否可用.我想使用此客户端APN运行我的应用程序.

有没有办法在Android上实现这一目标?

Asa*_*ahi 5

这可能无法直接回答您的问题.看看这个.但请记住,此代码仅供参考,不应在您的应用中使用.

要获得定义的APN:

Cursor c = getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), null, null, null, null);
Run Code Online (Sandbox Code Playgroud)

然后参考Telephony.Carriers相关专栏.


vin*_*091 5

如果您想阅读适用于 Android 4.2 及更高版本的 APN,则需要进行更改。我测试了它,它有效。

在 Android 4.1 及更高版本中使用这个:

Cursor c = getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), null, null, null, null);
Run Code Online (Sandbox Code Playgroud)

对于 Android 4.2 及更高版本,请使用以下代码:

private static final String[] APN_PROJECTION = {
     Telephony.Carriers.TYPE,            // 0
     Telephony.Carriers.MMSC,            // 1
     Telephony.Carriers.MMSPROXY,        // 2
     Telephony.Carriers.MMSPORT          // 3
 };
Run Code Online (Sandbox Code Playgroud)

而这一行:

final Cursor apnCursor =SqliteWrapper.query(context, this.context.getContentResolver(), Uri.withAppendedPath(Carriers.CONTENT_URI, "current"), APN_PROJECTION, null, null, null);
Run Code Online (Sandbox Code Playgroud)

SQLiteWrapperClass 是隐藏的(我在 Internet 上找到了这个类)。

import android.database.sqlite.SqliteWrapper;
Run Code Online (Sandbox Code Playgroud)