自4.2以来获得首选apn失败

时间:2012-11-22 14:49:05

标签: android security proxy

我在oder中使用以下代码来获取设备的首选apn:

DefaultHttpClient http = new DefaultHttpClient();
Cursor mCursor = ctx.getContentResolver().query(Uri.parse("content://telephony/carriers/preferapn"), new String[] { "name", "proxy", "port"},null, null, null);

如果设置了代理,我修改我的webrequest

if (mCursor != null) {
            try {
                if (mCursor.moveToFirst()) {
                    // String name = mCursor.getString(0);
                    String proxy = mCursor.getString(1);
                    String port = mCursor.getString(2);
                    if (proxy != null) {
                        if (!proxy.equals("")) {
                            HttpHost proxys = new HttpHost(proxy, Integer.parseInt(port));
                            http.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxys);
                        }
                    }

                }
            } finally {
                try {
                    mCursor.close();
                } catch (Exception e) {
                    mCursor = null;
                }
                mCursor = null;
            }
        }

由于Android 4.2代码因安全性异常而失败,因此非进程的用户都没有权限WRITE_APN_SETTINGS。 我补充道 和 但没有任何作用。 有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

  

WRITE_APN_SETTINGS

现在是系统级权限:

"Ice Cream Sandwich" and WRITE_APN_SETTINGS

您似乎需要将应用程序设置为系统应用程序才能使用APN设置,并且需要有根电话。