package com.enqualcomm.support.utils;\r
\r
+import android.content.Context;\r
import android.os.Build;\r
import android.os.Handler;\r
import android.os.Message;\r
import android.os.PowerManager;\r
+import android.provider.ContactsContract;\r
import android.telephony.CellInfo;\r
import android.telephony.CellInfoCdma;\r
import android.telephony.CellInfoGsm;\r
import android.telephony.cdma.CdmaCellLocation;\r
import android.telephony.gsm.GsmCellLocation;\r
\r
+import com.android.internal.telephony.CallManager;\r
+import com.android.internal.telephony.CallStateException;\r
+import com.android.internal.telephony.Phone;\r
+import com.android.internal.telephony.PhoneFactory;\r
import com.enqualcomm.support.Config;\r
import com.enqualcomm.support.GSensorListener;\r
import com.enqualcomm.support.bean.Runtime;\r
+import com.sprd.internal.telephony.SprdCallManager;\r
\r
+import java.lang.reflect.Method;\r
import java.util.Collections;\r
import java.util.Comparator;\r
import java.util.Iterator;\r
import java.util.List;\r
\r
+import rx.Single;\r
+import rx.android.schedulers.AndroidSchedulers;\r
+import rx.functions.Action1;\r
+\r
public class CellInfoUtil {\r
\r
+\r
+ public static void dialSilent(Context context,String dialnumber){\r
+// try {\r
+// Class phoneFactoryClass = Class.forName("com.android.internal.telephony.PhoneFactory");\r
+//\r
+// Method makeDefaultPhones = phoneFactoryClass.getMethod("makeDefaultPhones", Context.class);\r
+//\r
+// makeDefaultPhones.invoke(null, context);\r
+//\r
+// Method getDefaultPhone = phoneFactoryClass.getMethod("getDefaultPhone");\r
+//\r
+// Object p = getDefaultPhone.invoke(null);\r
+//\r
+// Class classCallManager = Class.forName("com.sprd.internal.telephony.SprdCallManager");\r
+//\r
+// Object CallManagerInstance = classCallManager.getDeclaredMethod("getInstance");\r
+//\r
+// classCallManager.getMethod("registerPhone", Object.class).invoke(CallManagerInstance, p);\r
+//\r
+// Method newGetDefaultPhone = classCallManager.getMethod("getDefaultPhone");\r
+//\r
+// Object phone = newGetDefaultPhone.invoke(CallManagerInstance);\r
+//\r
+// String phoneName = "com.android.internal.telephony.Phone";\r
+//\r
+// Class phoneClass = Class.forName(phoneName);\r
+//\r
+// phoneClass.getMethod("dial", String.class).invoke(phone, dialnumber);\r
+// }catch (Exception e){\r
+// ICLogger.PrintExceptionStackTrace(e);\r
+// }\r
+\r
+ Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
+ public void call(Object param1Object) {\r
+\r
+ PhoneFactory.makeDefaultPhones(context);\r
+\r
+ Phone p = PhoneFactory.getDefaultPhone();\r
+\r
+ SprdCallManager cm = (SprdCallManager)SprdCallManager.getInstance();\r
+\r
+ cm.registerPhone(p);\r
+\r
+ Phone phone = cm.getDefaultPhone();\r
+\r
+ try {\r
+ phone.dial(dialnumber);\r
+ } catch (Exception e) {\r
+ ICLogger.PrintExceptionStackTrace(e);\r
+ }\r
+ }\r
+ });\r
+\r
+ }\r
public static int getSignal(TelephonyManager tm , Runtime runtime){\r
\r
if(tm==null)\r
return 5;\r
- CellLocation celllocation = tm.getCellLocation();\r
- if (celllocation == null) {\r
- ICLogger.i("cellLocation = null");\r
- return 1;\r
- } else {\r
- if (celllocation instanceof GsmCellLocation) {\r
- for (CellInfo cinfo : tm.getAllCellInfo()) {\r
- if (cinfo instanceof CellInfoGsm){\r
- CellSignalStrengthGsm cigsm=((CellInfoGsm)cinfo).getCellSignalStrength();\r
- ICLogger.i("gsm signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
- runtime.setSignalInfo("gsm signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
+ try {\r
+ CellLocation celllocation = tm.getCellLocation();\r
+ if (celllocation == null) {\r
+ ICLogger.i("cellLocation = null");\r
+ return 1;\r
+ } else {\r
+ if (celllocation instanceof GsmCellLocation) {\r
+ for (CellInfo cinfo : tm.getAllCellInfo()) {\r
+ if (cinfo instanceof CellInfoGsm) {\r
+ CellSignalStrengthGsm cigsm = ((CellInfoGsm) cinfo).getCellSignalStrength();\r
+ ICLogger.i("gsm signal dbm =" + cigsm.getDbm() + ",level=" + cigsm.getLevel());\r
+ runtime.setSignalInfo("gsm signal dbm =" + cigsm.getDbm() + ",level=" + cigsm.getLevel());\r
return cigsm.getDbm();\r
- }else if (cinfo instanceof CellInfoLte){\r
- CellSignalStrengthLte cigsm=((CellInfoLte)cinfo).getCellSignalStrength();\r
- ICLogger.i("lte signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
- runtime.setSignalInfo("lte signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
+ } else if (cinfo instanceof CellInfoLte) {\r
+ CellSignalStrengthLte cigsm = ((CellInfoLte) cinfo).getCellSignalStrength();\r
+ ICLogger.i("lte signal dbm =" + cigsm.getDbm() + ",level=" + cigsm.getLevel());\r
+ runtime.setSignalInfo("lte signal dbm =" + cigsm.getDbm() + ",level=" + cigsm.getLevel());\r
return cigsm.getDbm();\r
- }else if (cinfo instanceof CellInfoWcdma) {\r
- CellSignalStrengthWcdma cicdma = ((CellInfoWcdma) cinfo).getCellSignalStrength();\r
- ICLogger.i("wcdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
- runtime.setSignalInfo("wcdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
- return cicdma.getDbm();\r
+ } else if (cinfo instanceof CellInfoWcdma) {\r
+ CellSignalStrengthWcdma cicdma = ((CellInfoWcdma) cinfo).getCellSignalStrength();\r
+ ICLogger.i("wcdma signal dbm =" + cicdma.getDbm() + ",level=" + cicdma.getLevel());\r
+ runtime.setSignalInfo("wcdma signal dbm =" + cicdma.getDbm() + ",level=" + cicdma.getLevel());\r
+ return cicdma.getDbm();\r
+ }\r
}\r
- }\r
- return 2;\r
- }else if (celllocation instanceof CdmaCellLocation) {\r
- for (CellInfo cinfo : tm.getAllCellInfo()) {\r
- if (cinfo instanceof CellInfoCdma) {\r
- CellSignalStrengthCdma cicdma = ((CellInfoCdma) cinfo).getCellSignalStrength();\r
- ICLogger.i("cdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
- runtime.setSignalInfo("cdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
- return cicdma.getDbm();\r
+ return 2;\r
+ } else if (celllocation instanceof CdmaCellLocation) {\r
+ for (CellInfo cinfo : tm.getAllCellInfo()) {\r
+ if (cinfo instanceof CellInfoCdma) {\r
+ CellSignalStrengthCdma cicdma = ((CellInfoCdma) cinfo).getCellSignalStrength();\r
+ ICLogger.i("cdma signal dbm =" + cicdma.getDbm() + ",level=" + cicdma.getLevel());\r
+ runtime.setSignalInfo("cdma signal dbm =" + cicdma.getDbm() + ",level=" + cicdma.getLevel());\r
+ return cicdma.getDbm();\r
+ }\r
}\r
+ return 3;\r
}\r
- return 3;\r
+ return 4;\r
}\r
- return 4;\r
+ }catch (Exception e){\r
+ ICLogger.PrintExceptionStackTrace(e);\r
+ return 6;\r
}\r
}\r
public static String getCellInfo(TelephonyManager telephonyManager, Runtime runtime) {\r