Есть ли способ включения и выключения подключения в AndroidTestCase? - PullRequest
1 голос
/ 18 февраля 2011

Я планирую начать писать тестовые примеры для Android, и я хотел бы знать, есть ли способ включить и отключить подключение программно в эмуляторе.

// High level puesdo code

Test: is Message Pushed to Local Storage if Phone is Not Connected to Network:

    Connectivity = off

    Create message

    try push message to webapp

    assert message in local storage

    Connectivity = on

Впервые в тестовых случаях на Android, поэтому извиняюсь, если ответ очевиден.

1 Ответ

1 голос
/ 19 февраля 2011

Чтобы удалить подключение, вы должны удалить определенные APN в соответствии с: http://www.mail-archive.com/android-developers@googlegroups.com/msg62089.html

Этот репозиторийесть все, что вам нужно: http://code.google.com/p/apndroid/

В любом случае, ниже приведены некоторые фрагменты, которые я нашел ...

Чтобы прочитать текущий APN:

Cursor cursor = 
getContentResolver().(Uri.parse("content://telephony/
carriers"),
null, null, 
null, null);
StringBuffer sb = new StringBuffer();

cursor.moveToFirst();
do{
sb.append("_id =").append(cursor.getString(0)).append(" , ");
sb.append("name=").append(cursor.getString(1)).append(" , ");
sb.append("numeric=").append(cursor.getString(2)).append(" , ");
sb.append("mcc=").append(cursor.getString(3)).append(" , ");
sb.append("mnc=").append(cursor.getString(4)).append(" , ");
sb.append("apn=").append(cursor.getString(5)).append(" , ");
sb.append("user=").append(cursor.getString(6)).append(" , ");
sb.append("server=").append(cursor.getString(7)).append(" , ");
sb.append("password=").append(cursor.getString(8)).append(" , 
");
sb.append("proxy=").append(cursor.getString(9)).append(" , ");
sb.append("port=").append(cursor.getString(10)).append(" , ");
sb.append("mmsproxy=").append(cursor.getString(11)).append(" , 
");
sb.append("mmsport=").append(cursor.getString(12)).append(" , 
");
sb.append("mmsc=").append(cursor.getString(13)).append(" , ");
sb.append("type=").append(cursor.getString(14)).append(" , ");
sb.append("current=").append(cursor.getString(15)).append(" , 
");

sb.append("\n--- BLOCK ---\n");

}while(cursor.moveToNext());

ДобавитьAPN это:

//Trying to Insert a Custom Setting to Telephony db
ContentValues values = new ContentValues();
values.put("_id","3");
values.put("name","Ramesh");
values.put("numeric","310995");
values.put("mcc","315");
values.put("mnc","995");
values.put("apn","email");
values.put("user","elkjop");
values.put("server","www.moota.com");
values.put("password","elkjop");
values.put("proxy","12");
values.put("port","12");
values.put("mmsproxy","12");
values.put("mmsport","12");
values.put("mmsc","12");
values.put("type","a");
values.put("current","a");

//Adding Values using the Content Resolver
getContentResolver().insert(Uri.parse("content://telephony/
carriers"), values);

Я нашел это здесь: https://groups.google.com/forum/#!topic/android-developers/fYwf_mhEX3Y

С помощью этого ContentResolver вы, вероятно, также можете удалить их.

Затем вы удалитеAPN, а затем восстановить его, и это будет делать то, что вы хотите.

...