浏览了下网页,没有看到相关方面的说明。
其中有些相关方面的接口不知道干嘛用的?
public boolean enableUdcpower(boolean enabled)public boolean enableGser(boolean enabled)public boolean enableVser(boolean enabled)---------------------------------------------
public String[] getTetherableIfaces()public String[] getTetherableUsbRegexs()
---------------------------------------------
USB 链接电脑,USB数据绑定,可以起作用。
但是点击checbox@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
// TODO Auto-generated method stub
Log.d(LOG_TAG, "YYYYYYYYYYYYYYYYYYYY------------------------------"+"onPreferenceTreeClick");
if(preference != mRememberChoice){
disableAllUI();
}
if(preference == mRememberChoice){
mLastRememberStatus = mRememberChoice.isChecked();
Settings.Secure.putInt(getContentResolver(),
Settings.Secure.REMEMBER_USB_CHOICE, mRememberChoice.isChecked() ? 1 : 0);
}
else if(preference == mUsbChargeOnly){
setUsbUdcpowerEnabled(mUsbChargeOnly.isChecked());
Settings.Secure.putInt(getContentResolver(), Settings.Secure.CHARGE_ONLY, mUsbChargeOnly.isChecked() ? 1 : 0);
}
//////数据绑定
else if(preference == mUsbTether)
{
if (mUsbTether.isChecked()) {
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "mUsbTether.isChecked()="+mUsbTether.isChecked());
String[] available = mConnectivityManager.getTetherableIfaces();
mUsbRegexs = mConnectivityManager.getTetherableUsbRegexs();
String usbIface = findIface(available, mUsbRegexs);
updateUI();
if (usbIface == null) {
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy-----------onPreferenceTreeClick" + "usbIface"+usbIface);
updateStatus();
return true;
}
if (mConnectivityManager.tether(usbIface) != ConnectivityManager.TETHER_ERROR_NO_ERROR) {
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy----------onPreferenceTreeClick" + "mConnectivityManager.tether(usbIface)="+mConnectivityManager.tether(usbIface));
mUsbTether.setChecked(false);
mUsbTether.setSummary(R.string.usb_tethering_errored_subtext);
return true;
}
//Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "zzzzzzzzzzzzzzzzzzzzzzz");
mUsbTether.setSummary("");
//Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "zzzzzzzzzzzzzzzzzzzzzzz mUsbTether.setSummary");
mLastRememberStatus = mRememberChoice.isChecked();
//Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "mLastRememberStatus=" + mLastRememberStatus);
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, 0);
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "Settings.Secure=" + mLastRememberStatus);
} else {
String [] tethered = mConnectivityManager.getTetheredIfaces();
mUsbRegexs = mConnectivityManager.getTetherableUsbRegexs();
String usbIface = findIface(tethered, mUsbRegexs);
if (usbIface == null) {
updateStatus();
return true;
}
if (mConnectivityManager.untether(usbIface) != ConnectivityManager.TETHER_ERROR_NO_ERROR) {
mUsbTether.setSummary(R.string.usb_tethering_errored_subtext);
return true;
}
mUsbTether.setSummary("");
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, mLastRememberStatus ? 1 : 0);
}
Settings.Secure.putInt(getContentResolver(), Settings.Secure.RNDIS_ENABLED, mUsbTether.isChecked() ? 1 : 0);
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick------" + "mUsbTether.isChecked()=" + mUsbTether.isChecked());
}/////////end 数据绑定
else if(preference == mUms){
mUmsClicked = true;
if(mUms.isChecked()){
Log.d(LOG_TAG,"usb mass storage enabling");
mDialog = new ProgressDialog(this);
mDialog.setTitle(R.string.ums_settings);
mDialog.setCancelable(false);
mDialog.setIndeterminate(true);
mDialog.setMessage(getText(R.string.ums_mounted_setting));
mDialog.show();
new Thread() {
public void run() {
mStorageManager.enableUsbMassStorage();
}
}.start();
mLastRememberStatus = mRememberChoice.isChecked();
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, 0);
}else{
Log.d(LOG_TAG,"usb mass storage disabling");
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, mLastRememberStatus ? 1 : 0);
mDialog = new ProgressDialog(this);
mDialog.setTitle(getText(R.string.ums_settings));
mDialog.setCancelable(false);
mDialog.setIndeterminate(true);
mDialog.setMessage(getText(R.string.ums_unmounted_setting));
mDialog.show();
new Thread() {
public void run() {
mStorageManager.disableUsbMassStorage();
}
}.start();
}
}
else if(preference == mCdrom){
Settings.Secure.putInt(getContentResolver(), "cdrom_shared", mCdrom.isChecked() ? 1 : 0);
shareUnshareCDRom(mCdrom.isChecked());
updateUI();
}
else if(preference == mUsbModemLog){
setUsbGserEnabled(mUsbModemLog.isChecked());
setUsbVserEnabled(mUsbModemLog.isChecked());
Settings.Secure.putInt(getContentResolver(), Settings.Secure.MODEM_ENABLED, mUsbModemLog.isChecked() ? 1 : 0);
}
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy-----------onPreferenceTreeClick-----" + "end");
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
其中有些相关方面的接口不知道干嘛用的?
public boolean enableUdcpower(boolean enabled)public boolean enableGser(boolean enabled)public boolean enableVser(boolean enabled)---------------------------------------------
public String[] getTetherableIfaces()public String[] getTetherableUsbRegexs()
---------------------------------------------
USB 链接电脑,USB数据绑定,可以起作用。
但是点击checbox@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
// TODO Auto-generated method stub
Log.d(LOG_TAG, "YYYYYYYYYYYYYYYYYYYY------------------------------"+"onPreferenceTreeClick");
if(preference != mRememberChoice){
disableAllUI();
}
if(preference == mRememberChoice){
mLastRememberStatus = mRememberChoice.isChecked();
Settings.Secure.putInt(getContentResolver(),
Settings.Secure.REMEMBER_USB_CHOICE, mRememberChoice.isChecked() ? 1 : 0);
}
else if(preference == mUsbChargeOnly){
setUsbUdcpowerEnabled(mUsbChargeOnly.isChecked());
Settings.Secure.putInt(getContentResolver(), Settings.Secure.CHARGE_ONLY, mUsbChargeOnly.isChecked() ? 1 : 0);
}
//////数据绑定
else if(preference == mUsbTether)
{
if (mUsbTether.isChecked()) {
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "mUsbTether.isChecked()="+mUsbTether.isChecked());
String[] available = mConnectivityManager.getTetherableIfaces();
mUsbRegexs = mConnectivityManager.getTetherableUsbRegexs();
String usbIface = findIface(available, mUsbRegexs);
updateUI();
if (usbIface == null) {
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy-----------onPreferenceTreeClick" + "usbIface"+usbIface);
updateStatus();
return true;
}
if (mConnectivityManager.tether(usbIface) != ConnectivityManager.TETHER_ERROR_NO_ERROR) {
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy----------onPreferenceTreeClick" + "mConnectivityManager.tether(usbIface)="+mConnectivityManager.tether(usbIface));
mUsbTether.setChecked(false);
mUsbTether.setSummary(R.string.usb_tethering_errored_subtext);
return true;
}
//Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "zzzzzzzzzzzzzzzzzzzzzzz");
mUsbTether.setSummary("");
//Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "zzzzzzzzzzzzzzzzzzzzzzz mUsbTether.setSummary");
mLastRememberStatus = mRememberChoice.isChecked();
//Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "mLastRememberStatus=" + mLastRememberStatus);
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, 0);
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick" + "Settings.Secure=" + mLastRememberStatus);
} else {
String [] tethered = mConnectivityManager.getTetheredIfaces();
mUsbRegexs = mConnectivityManager.getTetherableUsbRegexs();
String usbIface = findIface(tethered, mUsbRegexs);
if (usbIface == null) {
updateStatus();
return true;
}
if (mConnectivityManager.untether(usbIface) != ConnectivityManager.TETHER_ERROR_NO_ERROR) {
mUsbTether.setSummary(R.string.usb_tethering_errored_subtext);
return true;
}
mUsbTether.setSummary("");
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, mLastRememberStatus ? 1 : 0);
}
Settings.Secure.putInt(getContentResolver(), Settings.Secure.RNDIS_ENABLED, mUsbTether.isChecked() ? 1 : 0);
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------onPreferenceTreeClick------" + "mUsbTether.isChecked()=" + mUsbTether.isChecked());
}/////////end 数据绑定
else if(preference == mUms){
mUmsClicked = true;
if(mUms.isChecked()){
Log.d(LOG_TAG,"usb mass storage enabling");
mDialog = new ProgressDialog(this);
mDialog.setTitle(R.string.ums_settings);
mDialog.setCancelable(false);
mDialog.setIndeterminate(true);
mDialog.setMessage(getText(R.string.ums_mounted_setting));
mDialog.show();
new Thread() {
public void run() {
mStorageManager.enableUsbMassStorage();
}
}.start();
mLastRememberStatus = mRememberChoice.isChecked();
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, 0);
}else{
Log.d(LOG_TAG,"usb mass storage disabling");
Settings.Secure.putInt(getContentResolver(), Settings.Secure.REMEMBER_USB_CHOICE, mLastRememberStatus ? 1 : 0);
mDialog = new ProgressDialog(this);
mDialog.setTitle(getText(R.string.ums_settings));
mDialog.setCancelable(false);
mDialog.setIndeterminate(true);
mDialog.setMessage(getText(R.string.ums_unmounted_setting));
mDialog.show();
new Thread() {
public void run() {
mStorageManager.disableUsbMassStorage();
}
}.start();
}
}
else if(preference == mCdrom){
Settings.Secure.putInt(getContentResolver(), "cdrom_shared", mCdrom.isChecked() ? 1 : 0);
shareUnshareCDRom(mCdrom.isChecked());
updateUI();
}
else if(preference == mUsbModemLog){
setUsbGserEnabled(mUsbModemLog.isChecked());
setUsbVserEnabled(mUsbModemLog.isChecked());
Settings.Secure.putInt(getContentResolver(), Settings.Secure.MODEM_ENABLED, mUsbModemLog.isChecked() ? 1 : 0);
}
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy-----------onPreferenceTreeClick-----" + "end");
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
// UI的更新
private void updateUI(){
mUsbConnected = mConnectivityManager.isUsbConnected();
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "updateUI mUsbConnected="+mUsbConnected);
if(mUsbConnected){
if(Settings.Secure.getInt(getContentResolver(), Settings.Secure.CHARGE_ONLY,0) != 0){
mUsbChargeOnly.setEnabled(true);
mUsbChargeOnly.setChecked(true);
}
//update modem log function's UI status
if((mUsbChargeOnly.isChecked() || mUsbTether.isChecked()) && mPrefCount > 5){
mUsbModemLog.setChecked(false);
mUsbModemLog.setEnabled(false);
}
//process charge only or tethering enabled,others status control
if(mUsbChargeOnly.isChecked()){
mUsbChargeOnly.setEnabled(true);
mUsbTether.setChecked(false);
mUsbTether.setSummary(R.string.usb_tethering_charge_only_active_subtext);
mUsbTether.setEnabled(false);
mUms.setChecked(false);
mUms.setEnabled(false);
mUms.setSummary(R.string.usb_storage_charge_only_active_subtext);
mCdrom.setChecked(false);
mCdrom.setEnabled(false);
mCdrom.setSummary(R.string.cdrom_shared_summary);
}else if(mUsbTether.isChecked()){
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "updateUI mUsbTether.isChecked()="+mUsbTether.isChecked());
mUsbTether.setEnabled(true);
mUsbChargeOnly.setChecked(false);
mUsbChargeOnly.setEnabled(false);
mUsbChargeOnly.setSummary(R.string.usb_charge_only_tethering_active_subtext);
mUms.setChecked(false);
mUms.setEnabled(false);
mUms.setSummary(R.string.usb_storage_tethering_active_subtext);
mRememberChoice.setChecked(false);
mRememberChoice.setEnabled(false);
mCdrom.setChecked(false);
mCdrom.setEnabled(false);
mCdrom.setSummary(R.string.cdrom_shared_summary);
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "updateUI mUsbTether.isChecked()="+mUsbTether.isChecked()); Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "updateUI mUsbChargeOnly.isChecked()="+mUsbChargeOnly.isChecked()); Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "updateUI mUms.isChecked()="+mUms.isChecked()); Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "updateUI mRememberChoice.isChecked()="+mRememberChoice.isChecked()); Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "updateUI mCdrom.isChecked()="+mCdrom.isChecked());
// summary for remember choice when tethering is checked
}else if(mCdrom.isChecked()){
mCdrom.setEnabled(true);
mUsbChargeOnly.setChecked(false);
mUsbChargeOnly.setEnabled(false);
mUsbChargeOnly.setSummary(R.string.usb_charge_only_tethering_active_subtext);
mUms.setChecked(false);
mUms.setEnabled(false);
mUms.setSummary(R.string.usb_storage_tethering_active_subtext);
mRememberChoice.setChecked(false);
mRememberChoice.setEnabled(false);
mUsbTether.setChecked(false);
mUsbTether.setEnabled(false);
mUsbTether.setSummary(R.string.usb_tethering_charge_only_active_subtext);
}else{
mUsbChargeOnly.setEnabled(true);
mUsbChargeOnly.setSummary(R.string.usb_charge_only_summary);
mUsbTether.setEnabled(true);
mUsbTether.setSummary(R.string.usb_tethering_available_subtext);
if(cdromFileExists) mCdrom.setEnabled(true);
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_REMOVED)) {
mUms.setEnabled(false);
mUms.setChecked(false);
}else{
mUms.setEnabled(true);
mUms.setSummary(R.string.usb_storage_summary);
//mUms.setChecked((Settings.Secure.getInt(
//getContentResolver(), Settings.Secure.UMS_MOUNTED,0) != 0));
Log.d(LOG_TAG,"external storage state : " + Environment.getExternalStorageState());
mUms.setChecked((Environment.getExternalStorageState()).equals(Environment.MEDIA_SHARED));
}
if(mPrefCount > 5){
mUsbModemLog.setEnabled(true);
mUsbModemLog.setChecked((Settings.Secure.getInt(
getContentResolver(), Settings.Secure.MODEM_ENABLED,1) != 0));
}
mRememberChoice.setEnabled(true);
mRememberChoice.setChecked(mLastRememberStatus);
// summary for remember choice when tethering and ums is unchecked
mRememberChoice.setSummary("");
}
if(mUms.isChecked()){
Log.d(LOG_TAG,"yyyyyyyyyyyyyyyy--------------------------" + "mUms.isChecked()=" + mUms.isChecked());
mCdrom.setEnabled(false);
mUsbChargeOnly.setChecked(false);
mUsbChargeOnly.setEnabled(false);
mUsbChargeOnly.setSummary(R.string.usb_charge_only_storage_active_subtext);
mUsbTether.setChecked(false);
mUsbTether.setEnabled(false);
mUsbTether.setSummary(R.string.usb_tethering_storage_active_subtext);
mRememberChoice.setChecked(false);
mRememberChoice.setEnabled(false);
// summary for remember choice when ums is checked
}
}else{
for (int i = 0; i < mPrefCount - 1; i++){
((CheckBoxPreference) getPreferenceScreen().getPreference(i)).setChecked(false);
((CheckBoxPreference) getPreferenceScreen().getPreference(i)).setEnabled(false);
}
}
}