am c69f5be0: Add PhoneSubInfo.getCompleteVoiceMailNumber.

Merge commit 'c69f5be0ed3529564e5db6874de52775c2c99007' into gingerbread

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

View File

@@ -135,9 +135,9 @@ public class PhoneNumberUtils
} }
// TODO: We don't check for SecurityException here (requires // TODO: We don't check for SecurityException here (requires
// READ_PHONE_STATE permission). // CALL_PRIVILEGED permission).
if (scheme.equals("voicemail")) { if (scheme.equals("voicemail")) {
return TelephonyManager.getDefault().getVoiceMailNumber(); return TelephonyManager.getDefault().getCompleteVoiceMailNumber();
} }
if (context == null) { 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. * Returns the voice mail count. Return 0 if unavailable.
* <p> * <p>

View File

@@ -58,6 +58,11 @@ interface IPhoneSubInfo {
*/ */
String getVoiceMailNumber(); String getVoiceMailNumber();
/**
* Retrieves the complete voice mail number.
*/
String getCompleteVoiceMailNumber();
/** /**
* Retrieves the alpha identifier associated with the voice mail number. * 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.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Binder; import android.os.Binder;
import android.telephony.PhoneNumberUtils;
import android.util.Log; import android.util.Log;
public class PhoneSubInfo extends IPhoneSubInfo.Stub { public class PhoneSubInfo extends IPhoneSubInfo.Stub {
@@ -29,6 +30,9 @@ public class PhoneSubInfo extends IPhoneSubInfo.Stub {
private Context mContext; private Context mContext;
private static final String READ_PHONE_STATE = private static final String READ_PHONE_STATE =
android.Manifest.permission.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) { public PhoneSubInfo(Phone phone) {
mPhone = phone; mPhone = phone;
@@ -101,7 +105,22 @@ public class PhoneSubInfo extends IPhoneSubInfo.Stub {
*/ */
public String getVoiceMailNumber() { public String getVoiceMailNumber() {
mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, "Requires READ_PHONE_STATE"); 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(); 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. * Retrieves the alpha identifier associated with the voice mail number.
*/ */