3g 应用开发之 android

Click here to load reader

Upload: uriah-orr

Post on 03-Jan-2016

167 views

Category:

Documents


5 download

DESCRIPTION

3G 应用开发之 Android. 讲师:黎活明. 什么是 3G. 3G ,全称为 3rd Generation ,中文含义就是指第三代数字通信。 - PowerPoint PPT Presentation

TRANSCRIPT

Java www.itcast.cn
Symbian, Windows Mobile, RIM BlackBerry, Android, iPhone, Palm, Brew, Java/J2ME
2009:
androidandroidandroidandroidMIDRockchipW7androidAndorid
:
Eclipse androidADT
http://dl.google.com/android/ADT-0.9.7.zip
Eclipse (ADT)
Eclipse Help > Install New SoftwareAddname“ADT” Archive...ADT
OK.Developer Tools (“Android Developer Tools” “Android Editors“) Next Eclipse
Android SDK
www.itcast.cn
www.itcast.cn
“AVD“
*
www.itcast.cn
res/ (Resource)
default.properties
<resources>
</resources>
<resources>
<resources>
</resources>
<resources>
</resources>
<resources>
</style>
</resources>
*
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
sp (scaled pixels — best for text size)


in (inches)
mm (millimeters)
@Override
DialerAction.this.startActivity(intent);


www.itcast.cn
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
//70,
//,
AndroidManifest.xml:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
</manifest>
targetPackagepackage
import android.test.AndroidTestCase;
import android.util.Log;
Assert.assertTrue(1 + 1 == 3);
...
openFileOutput() Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
www.itcast.cn
Context.MODE_APPEND
Context.MODE_WORLD_READABLEContext.MODE_WORLD_WRITEABLE
try {
int length = -1;
while((length = inStream.read(buffer)) != -1 ){
outStream.write(buffer, 0, length);
SDCardSDCard
FileOutputStream outStream = new FileOutputStream(saveFile);
FileOutputStream outStream = new FileOutputStream(saveFile);
itcast.xml
<persons>
startDocument()
namespaceURIlocalNameqNameattsSAXstartElement()SAXDOM
endElement(String uri, String localName, String name)

XMLnew String(ch,start,length)
<persons>
"\n\t" characters("<persons>...</persons>", "12", "2")
<person> startElement(, "person", null, "{Attributes}")
"\n\t\t" characters("<persons>...</persons>", "31", "3")
<name> startElement(, "name", null, "{Attributes}")
"" characters("<persons>...</persons>", "40", "2")
</name> endElement("", "name", null)
<age> startElement(, "age", null, "{Attributes}")
"30" characters("<persons>...</persons>", "58", "2")
</age> endElement("", "age", null)
</person> endElement("", "person", null)
<person> startElement(, "person", null, "{Attributes}")
"\n\t\t" characters("<persons>...</persons>", "98", "3")
<name> startElement(, "name", null, "{Attributes}")
"" characters("<persons>...</persons>", "107", "3")
</name> endElement("", "name", null)
<age> startElement(, "age", null, "{Attributes}")
"25" characters("<persons>...</persons>", "126", "2")
</age> endElement("", "age", null)
</person> endElement("", "person", null)
</persons> endElement("", "persons", null)
public static List<Person> readXML(InputStream inStream) {
try {
private Person currentPerson;
persons = new ArrayList<Person>();
@Override public void characters(char[] ch, int start, int length) throws SAXException {
if(tagName!=null){
if(tagName.equals("name")){
this.currentPerson.setName(data);
if(localName.equals("person")){
if(localName.equals("person")){
persons.add(currentPerson);

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Person person = new Person();
Node node = (Node) childsNodes.item(j);
//name
Pullitcast.xml
XmlPullParser parser = Xml.newPullParser();
Pullitcast.xmlmyitcast.xml
XML
BufferedWriter writer = new BufferedWriter(outStreamWriter);
XmlSerializer serializer = Xml.newSerializer();
<map>
</map>
www.itcast.cn
CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))
SQLiteSQL
select * from where group by having ... order by
select * from person
select name from person group by name having count(*)>1
SQLmysqlSQL53
select * from Account limit 5 offset 3 select * from Account limit 3,5
insert into () values() insert into person(name, age) values(‘’,3)
update set = where update person set name=‘‘ where id=10
delete from where delete from person where id=10
www.itcast.cn
//,,
public DatabaseHelper(Context context) {
}
db.execSQL("DROP TABLE IF EXISTS person");
onCreate(db);
db.close();
SQLiteDatabase db = ....;
db.close();
www.itcast.cn
while (cursor.moveToNext()) {
rawQuery()selectselectselectnullselect
Cursor cursor = db.rawQuery("select * from person where name like ? and age=?", new String[]{"%%", "4"});
Cursorjdbc CursorJDBCResultSetmoveToNext()falsetrueCursor moveToPrevious()falsetrue moveToFirst()falsetrue moveToLast()falsetrue
www.itcast.cn
Insert()ContentValues ContentValuesMAPMAPput(String key, Xxx value)getAsXxx(String key) keyvalueXxxStringInteger
SQLiteDatabase db = databaseHelper.getWritableDatabase();
Insert()NullInsert()insert SQLInsert()values Null0 Insert()NullSQL insertinsert into person(name) values(NULL) insert insert into person() values()SQLINTEGERinsert into person(personid) values(NULL)insertNULLvalues Null0 null
www.itcast.cn
db.close();
personpersonid2
update()
db.update("person", values, "personid=?", new String[]{"1"});
db.close();
while (cursor.moveToNext()) {
query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit)
tableselectfrom
columnsselectselect
limitselectlimit
private static final String name = "itcast"; //
private static final int version = 1; //
......
......
db.close();
db.execSQL("update person set name=? where personid=?", new Object[]{"", 1});
db.setTransactionSuccessful();//endTransaction()
public boolean onCreate()
public int delete(Uri uri, String selection, String[] selectionArgs)
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
public String getType(Uri uri)}
<manifest .... >
<provider android:name=".PersonContentProvider" android:authorities="cn.itcast.providers.personprovider"/>
private static UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
private static final int PERSONS = 1;
private static final int PERSON = 2;
private DBOpenHelper dbOpenHelper;
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
where = where + " and "+ selection;
}
switch (matcher.match(uri)) {
case PERSONS://
return "vnd.android.cursor.dir/person";
case PERSON:
return "vnd.android.cursor.item/person";
}
}
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
long id = 0 ;
}
}
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
case PERSON:
where = where + " and "+ selection;
default:
}
}
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
break;
break;
default:
}
ContentProviderschemeAndroid schemecontent://
AuthorityContentProvider
personid10:/person/10
personid10name person/10/name
person:/person
xxx:/xxx
UriMatcherUri
Uri
switch (sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10"))) {
ContentProvider
ContentProvider
ContentProvider
ContentProvider
public Uri insert(Uri uri, ContentValues values)
ContentProvider
ContentProvider
ContentProvider
ContentProvider
while(cursor.moveToNext()){
}
String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
public Uri insert(Uri uri, ContentValues values) {
db.insert("person", "personid", values);
public PersonObserver(Handler handler) {
InputStream is = conn.getInputStream();//
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
int len = -1;
InputStream is = conn.getInputStream();
FileOutputStream outStream = new FileOutputStream(file);
int len = -1;
3>HttpRange2M(4M-1byte)
HttpURLConnection.setRequestProperty("Range", "bytes=2097152-4194303");
4>RandomAccessFile
threadfile.seek(2097152);//
String path = "http://net.itcast.cn/QQWubiSetup.exe";
conn.setRequestProperty("Connection", "Keep-Alive");
RandomAccessFile file = new RandomAccessFile("102.wma","rw");
int startpos = i * perthreadsize;//
RandomAccessFile perthreadfile = new RandomAccessFile("102.wma","rw");//
}
private int startpos;//
private int perthreadsize;//
private String path;
private RandomAccessFile file;
private int threadid;
this.path = path;
this.startpos = startpos;
this.perthreadsize = perthreadsize;
this.file = perthreadfile;
this.threadid = threadid;
int len = 0;
int length = 0;
requestParams.put("age", "12");
requestParams.put("name", "");
params.append(entry.getKey());
params.append("=");
byte[] data = params.toString().getBytes();
xml.append("<M1 V=10000>");
xml.append("</M1>");
InputStream is = conn.getInputStream();//
super.onCreate(savedInstanceState);
//setContentView(R.layout.xxx)....
.....
</application>
.......
.......
Bundle bundle = new Bundle();//
........
......
......
}
mMap.put(key, value);
Intent intent = new Intent();
private Bundle mExtras;
if (mExtras == null) {
mExtras = new Bundle();
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
.......
}});
}
String result = data.getExtras().getString(“result”));//Activity
}
......
}
@Override public void onCreate(Bundle savedInstanceState) {
....
}});
}});
switch(requestCode){
.....
......
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(resultCode){
<intent-filter>
Action test
ActivityActivity
Activity
ActivityonStart()onStop()ActivityActivityonStart()BroadcastReceiverUIonStop()onStart() onStop()
ActivityonResume()onPause()ActivityActivity——ActivityonPause() ActivityIntentonResume() PPT
startActivity(new Intent(LifeActivity.this, CustomDialogActivity.class));
2Activity
super.onCreate(savedInstanceState);
//setContentView()requestWindowFeature()
requestWindowFeature(Window.FEATURE_LEFT_ICON);//
setContentView(R.layout.dialog_activity);
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert);//
.....
android:theme="@android:style/Theme.Dialog"/>
ActivityActivityActivityActivity onSaveInstanceState() onRestoreInstanceState()
private String name;

www.itcast.cn
@Override public void onReceive(Context context, Intent intent) {
}
}
Context.sendBroadcast()
@Override public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
for (SmsMessage message : messages){
}}}}}
Intent AndroidManifest.xml<application>Intent:
@Override public void onReceive(Context context, Intent intent) {
//Intent
context.startService(service);
AndroidManifest.xml<application>:
private static final String TAG = "PhoneListenerService";
private PhoneStateListener listener = new PhoneStateListener(){
private String filename;
private boolean recoding;
private String mobile;
private MediaRecorder recorder;
try {
recorder = new MediaRecorder();
private boolean quit;
private int count;
public class ServiceBinder extends Binder implements ICountService {
@Override
private ICountService countService;
@Override
countService = (ICountService) service;//onBind()
AIDLAndroid(IPC)AIDLIPCEJBCORBAAIDLAIDLandroidandroid
package cn.itcast.aidl;
interface IDownloadService {
Aidl:
4.AIDLaidlimport
6.Javain,
@Override
Log.i("DownloadService", path);
@Override
@Override
Log.i("DownloadService", path);
private IDownloadService downloadService;
@Override
downloadService = IDownloadService.Stub.asInterface(service);
parcelable
2>CREATORParcelable.Creator
package cn.itcast.domain;
import android.os.Parcel;
import android.os.Parcelable;
private Integer id;
private String name;
this.id = id;
this.name = name;
dest.writeInt(this.id);
dest.writeString(this.name);
@Override
return new Person(source.readInt(), source.readString());
public class ServiceBinder extends IPersonService.Stub {
@Override
Log.i("PersonService", person.getId()+"="+ person.getName());
public class PersonService extends Service {
private ServiceBinder serviceBinder = new ServiceBinder();
@Override
@Override
Log.i("PersonService", person.getId()+"="+ person.getName());
private IPersonService personService;
@Override
personService = IPersonService.Stub.asInterface(service);
www.itcast.cn
switch (state){
mediaPlayer.release();
mediaPlayer.release();
SoundPoolMediaPlayer
SoundPoolandroid.media.SoundPoolMediaPlayerSoundPoolCPUSoundPoolID
SoundPoolBUG1.0Google
1. SoundPool1M
2. SoundPoolpausestop
3. SoundPoolSoundPoolG1100msSoundPoolDroid
SoundPoolSoundPool1.()2.()
private SoundPool pool;
final int sourceid = pool.load(this, R.raw.pj, 0);//id
Button button = (Button)this.findViewById(R.id.button);
pool.play(sourceid, 1, 1, 0, -1, 1);
}
});
}
}
*
SurfaceView surfaceView = (SurfaceView)this.findViewById(R.id.surfaceView);
surfaceView.getHolder().setFixedSize(176, 144); //
private static final String TAG = "VideoActivity";
private EditText filenameText;
private SurfaceView surfaceView;
private MediaPlayer mediaPlayer;
private String filename;//
private int position;//
@Override
mediaPlayer.reset();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
@Override
}
Log.i(TAG, "surfaceCreated()");
if(mediaPlayer.isPlaying()){
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
SurfaceView surfaceView = (SurfaceView)this.findViewById(R.id.surfaceView);
surfaceView.getHolder().setFixedSize(176, 144); //
private static final String TAG = "TakePictureActivity";
private SurfaceView surfaceView;
private Camera camera;
private boolean preview;
@Override
}
if(camera!=null && event.getRepeatCount()==0){
@Override
try {
FileOutputStream outStream = new FileOutputStream(file);
private static final String TAG = "VideoRecordActivity";
private Button startButton;
private Button stopButton;
private boolean record;
private MediaRecorder recorder;
private SurfaceView surfaceView;
@Override
notification.defaults = Notification.DEFAULT_SOUND;//
notification.setLatestEventInfo(this, “”, “", contentIntent);
Uri uri = Uri.parse("http://www.itcast.cn/");//
startActivity(intent);
dialog.cancel();
new AlertDialog.Builder(SenderNotificationActivity.this).setTitle("")
Toast.makeText(getApplicationContext(), items[item],
new AlertDialog.Builder(SenderNotificationActivity.this).setTitle("")
Toast.makeText(getApplicationContext(), items[item],
new AlertDialog.Builder(SenderNotificationActivity.this).setCancelable(false)
@Override
if(isChecked){
dialoginterface.dismiss();
private ProgressDialog progressDialog;
@Override
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
RadioButton radioButton = (RadioButton) findViewById(checkedId);
<LinearLayout
private static final String TAG = "CheckBoxActivity";
private List<CheckBox> checkboxs = new ArrayList<CheckBox>();
@Override
for(CheckBox box : checkboxs){
CheckBox checkBox = (CheckBox) buttonView;
}
};
}
*
<LinearLayout
private static final String TAG = "SpinnerActivity";
@Override
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.add("java");
adapter.add("dotNet");
adapter.add("php");
Spinner spinner = (Spinner)adapterView;
String itemContent = (String)adapterView.getItemAtPosition(position);
<LinearLayout
private static final String TAG = "SpinnerActivity";
@Override
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinner = (Spinner)adapterView;
Person person = (Person)adapterView.getItemAtPosition(position);
this.id = id;
this.name = name;
<LinearLayout
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
private static final String TAG = "SpinnerActivity";
@Override
adapter.add("java");
adapter.add("dotNet");
adapter.add("php");
Spinner spinner = (Spinner)adapterView;
String itemContent = (String)adapterView.getItemAtPosition(position);
<LinearLayout
private SeekBar seekBar;
Log.v("onProgressChanged()", String.valueOf(progress) + ", " + String.valueOf(fromTouch));
Log.v("onStartTrackingTouch()", String.valueOf(seekBar.getProgress()));
Log.v("onStopTrackingTouch()", String.valueOf(seekBar.getProgress()));
ActivityonMenuItemSelected()
www.itcast.cn
private static final String TAG = "MenuActivity";
private static final int MENU_ADD = Menu.FIRST;
private static final int MENU_UPDATE = Menu.FIRST + 1;
@Override
switch (item.getItemId()) {
case MENU_ADD:
String[] names = {"", "", "", "" , "", "", "abc", "acc"};
AutoCompleteTextView nameText = (AutoCompleteTextView)this.findViewById(R.id.name);
nameText.setAdapter(adapter);
String[] names = {"", "", "", "" , "", "", "abc", "acc"};
MultiAutoCompleteTextView nameText = (MultiAutoCompleteTextView)this.findViewById(R.id.name);
nameText.setAdapter(adapter);

draw9patch*.9.png

private GestureOverlayView gestureOverlayView;
private GestureLibrary mLibrary;
private boolean state;
private EditText addressText;
@Override
if(state){
2> Frame
1res/ drawable
3ViewAnimationDrawablestart()
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:interpolator="@android:anim/accelerate_decelerate_interpolator"
fillAftertrue
2> layout<ImageView>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3>ActivityImageView
@Override
@Override
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
</animation-list>
3ViewAnimationDrawablestart()
private AnimationDrawable animationDrawable;
CSS
<style>
Android
res/values/styles.xml
<resources>
<item name="android:textColor">#0000CC</item>
</style>
</resources>
layoutandroid
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ....>
<TextView style="@style/itcast"
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="android:textColor">#0000CC</item>
</style>
</style>
</resources>
<resources>
</style>
</resources>
android:theme="@style/itcastTheme">
android<activity android:theme=“@android:style/Theme.Dialog”>Activity@android:style/Theme.Translucent referenceandroid-->R.style
www.itcast.cn
<html>
<head>
<title>Insert title here</title>
<style type="text/css">
var tr = table.insertRow(table.rows.length); //
td3.innerHTML = jsonobjs[y].phone;
</script>
</head>
<body bgcolor="#000000" text="#FFFFFF" style="margin:0 0 0 0" onload="javascript:itcast.personlist()">
<table border="0" width="100%" id="personTable" cellspacing="0">
<tr>
<td width="15%"></td><td align="center"></td><td width="15%"></td>
</tr>
</table>
</body>
</html>
private WebView webView;
@Override
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ phone)));
try {
@Override
new AlertDialog.Builder(HtmlActivity.this)
}).show();
* SIMIMSIMCCMNCMSINMCC3
* 460MNCid2
* GSMSIMMNC
Cursor cursor = managedQuery(uri, projection, null, null, "name");
if(cursor!=null){
private static final String TAG = "IccProvider";
private static final boolean DBG = false;
private static final String[] ADDRESS_BOOK_COLUMN_NAMES = new String[] {
"name",
"number"
private static final UriMatcher URL_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
static {
String[] selectionArgs, String sort) {
}
results = new ArrayList<ArrayList>(4);
ArrayList<String> contact;
}
}
Uri resultUri;
int efType;
}
if (!success) {
return null;
}
// TODO: we need to find out the rowId for the newly added record
buf.append(0);
getContext().getContentResolver().notifyInsert(
int efType;
}
continue;
if (STR_TAG.equals(key)) {
tag = normalizeValue(val);
if (!success) {
return 0;
public int update(Uri url, ContentValues values, String where, String[] whereArgs) {
int efType;
}
newTag, newNumber, pin2);
ArrayList<ArrayList> results = new ArrayList<ArrayList>();
List<AdnRecord> adnRecords = null;
try {
loadRecord(adnRecords.get(i), results);
results.clear();
return results;
if (DBG) log("addIccRecordToEf: efType=" + efType + ", name=" + name +
", number=" + number);
// updateAdnRecordsInEfBySearch()? In any case, we will leave
// the UI level logic to fill that prereq if necessary. But
// hopefully, we can remove this requirement.
try {
String newName, String newNumber,String pin2) {
if (DBG) log("updateIccRecordInEf: efType=" + efType +
", oldname=" + oldName + ", oldnumber=" + oldNumber +
", newname=" + newName + ", newnumber=" + newNumber);
}
if (DBG) log("deleteIccRecordFromEf: efType=" + efType +
", name=" + name + ", number=" + number + ", pin2=" + pin2);
boolean success = false;
}
/**
*
*/
String alphaTag = record.getAlphaTag();
String number = record.getNumber();
contact.add(alphaTag);
contact.add(number);
results.add(contact);
* getDownloadCacheDirectory()
* getExternalStorageDirectory()
* getExternalStoragePublicDirectory(String type)
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener{
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private MediaPlayer mediaPlayer;
int height) {
// TODO Auto-generated method stub
private static final String TAG = "IccProvider";
private static final boolean DBG = false;
private static final String[] ADDRESS_BOOK_COLUMN_NAMES = new String[] {
"name",
"number"
private static final UriMatcher URL_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
static {
String[] selectionArgs, String sort) {
}
results = new ArrayList<ArrayList>(4);
ArrayList<String> contact;
}
}
Uri resultUri;
int efType;
}
if (!success) {
return null;
}
// TODO: we need to find out the rowId for the newly added record
buf.append(0);
getContext().getContentResolver().notifyInsert(
int efType;
}
continue;
if (STR_TAG.equals(key)) {
tag = normalizeValue(val);
if (!success) {
return 0;
public int update(Uri url, ContentValues values, String where, String[] whereArgs) {
int efType;
}
newTag, newNumber, pin2);
ArrayList<ArrayList> results = new ArrayList<ArrayList>();
List<AdnRecord> adnRecords = null;
try {
loadRecord(adnRecords.get(i), results);
results.clear();
return results;
if (DBG) log("addIccRecordToEf: efType=" + efType + ", name=" + name +
", number=" + number);
// updateAdnRecordsInEfBySearch()? In any case, we will leave
// the UI level logic to fill that prereq if necessary. But
// hopefully, we can remove this requirement.
try {
String newName, String newNumber,String pin2) {
if (DBG) log("updateIccRecordInEf: efType=" + efType +
", oldname=" + oldName + ", oldnumber=" + oldNumber +
", newname=" + newName + ", newnumber=" + newNumber);
}
if (DBG) log("deleteIccRecordFromEf: efType=" + efType +
", name=" + name + ", number=" + number + ", pin2=" + pin2);
boolean success = false;
}
/**
*
*/
String alphaTag = record.getAlphaTag();
String number = record.getNumber();
contact.add(alphaTag);
contact.add(number);
results.add(contact);