关于APN的一些东西3
书接上文:
ShowAllApnActivity
跳转后直接调用allAPN()方法得到所有的APN
List<Map<String, Object>> allAPN()
{
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map;
Cursor cursor_all = getContentResolver().query(APN_TABLE_URI, null,
null, null, null);// 所有的移动网络设置中的APN列表
while (cursor_all != null && cursor_all.moveToNext())
{
map = new HashMap<String, Object>();
map.put("_id",
cursor_all.getString(cursor_all.getColumnIndex("_id")));
map.put("name",
cursor_all.getString(cursor_all.getColumnIndex("name")));
map.put("apn",
cursor_all.getString(cursor_all.getColumnIndex("apn")));
list.add(map);
}
return list;
}
返回的是的list需要做成listview显示,获取的只有3个字段,其实有很多。
返回的list直接放入到自己创建的adapter中进行操作,
显示后对listview设置监听,
在监听中
final Map<String, Object> map = (Map<String, Object>) mApnArrayAdapter.getItem(position);
position是你点击的Item的id通过这个id机可以得到apn在数据库中的id
设置3个dialog的按钮都监听,设为默认的就不说了在上篇里面有
删除:
ContentResolver resolver = getContentResolver();
Uri deleteIdUri = ContentUris.withAppendedId(
APN_TABLE_URI,
Long.parseLong(map.get("_id") + ""));
resolver.delete(deleteIdUri, null, null);
这个方法 ContentUris.withAppendedId(APN_TABLE_URI,Long.parseLong(map.get("_id") + ""));
返回的是:
content://telephony/carriers/(id)
把他加入到delete中就会删除指定的条数
如果只将APN_TABLE_URI(content://telephony/carriers)放入那么就会删除所有符合条件的apn
其实就是全删除
基本上的都解释完事
还有个需求就是当这个应用完全关闭的时候我们删除我们所添加的所有的APN
注意:是我们添加的不是数据库里自带的。
这个还没做~~一会完成它。在编辑这篇吧
PS:添加了个按钮~~在关闭的时候调用删除apn功能
id就是在mainActivity中addNewApn()的方法里得到的id