am 1540a7ea: am c69f5be0: Add PhoneSubInfo.getCompleteVoiceMailNumber.

Merge commit '1540a7ea1afcb772b5fcf90f635153f6489eb8ed' into gingerbread-plus-aosp

* commit '1540a7ea1afcb772b5fcf90f635153f6489eb8ed':
  Add PhoneSubInfo.getCompleteVoiceMailNumber.
This commit is contained in:
Wink Saville
2010-08-02 12:06:34 -07:00
committed by Android Git Automerger
5 changed files with 53 additions and 3 deletions

View File

@@ -141,9 +141,9 @@ public class PhoneNumberUtils
}
// TODO: We don't check for SecurityException here (requires
// READ_PHONE_STATE permission).
// CALL_PRIVILEGED permission).
if (scheme.equals("voicemail")) {
return TelephonyManager.getDefault().getVoiceMailNumber();
return TelephonyManager.getDefault().getCompleteVoiceMailNumber();
}
if (context == null) {

View File

@@ -664,6 +664,25 @@ public class TelephonyManager {
}
}
/**
* Returns the complete voice mail number. Return null if it is unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#CALL_PRIVILEGED CALL_PRIVILEGED}
*
* @hide
*/
public String getCompleteVoiceMailNumber() {
try {
return getSubscriberInfo().getCompleteVoiceMailNumber();
} catch (RemoteException ex) {
return null;
} catch (NullPointerException ex) {
// This could happen before phone restarts due to crashing
return null;
}
}
/**
* Returns the voice mail count. Return 0 if unavailable.
* <p>

View File

@@ -58,6 +58,11 @@ interface IPhoneSubInfo {
*/
String getVoiceMailNumber();
/**
* Retrieves the complete voice mail number.
*/
String getCompleteVoiceMailNumber();
/**
* Retrieves the alpha identifier associated with the voice mail number.
*/

View File

@@ -21,6 +21,7 @@ import java.io.PrintWriter;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Binder;
import android.telephony.PhoneNumberUtils;
import android.util.Log;
public class PhoneSubInfo extends IPhoneSubInfo.Stub {
@@ -29,6 +30,9 @@ public class PhoneSubInfo extends IPhoneSubInfo.Stub {
private Context mContext;
private static final String READ_PHONE_STATE =
android.Manifest.permission.READ_PHONE_STATE;
private static final String CALL_PRIVILEGED =
// TODO Add core/res/AndriodManifest.xml#READ_PRIVILEGED_PHONE_STATE
android.Manifest.permission.CALL_PRIVILEGED;
public PhoneSubInfo(Phone phone) {
mPhone = phone;
@@ -101,7 +105,22 @@ public class PhoneSubInfo extends IPhoneSubInfo.Stub {
*/
public String getVoiceMailNumber() {
mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, "Requires READ_PHONE_STATE");
return (String) mPhone.getVoiceMailNumber();
String number = PhoneNumberUtils.extractNetworkPortion(mPhone.getVoiceMailNumber());
Log.d(LOG_TAG, "VM: PhoneSubInfo.getVoiceMailNUmber: "); // + number);
return number;
}
/**
* Retrieves the compelete voice mail number.
*
* @hide
*/
public String getCompleteVoiceMailNumber() {
mContext.enforceCallingOrSelfPermission(CALL_PRIVILEGED,
"Requires CALL_PRIVILEGED");
String number = mPhone.getVoiceMailNumber();
Log.d(LOG_TAG, "VM: PhoneSubInfo.getCompleteVoiceMailNUmber: "); // + number);
return number;
}
/**

View File

@@ -81,6 +81,13 @@ public class PhoneSubInfoProxy extends IPhoneSubInfo.Stub {
return mPhoneSubInfo.getVoiceMailNumber();
}
/**
* Retrieves the complete voice mail number.
*/
public String getCompleteVoiceMailNumber() {
return mPhoneSubInfo.getCompleteVoiceMailNumber();
}
/**
* Retrieves the alpha identifier associated with the voice mail number.
*/