當前位置:首頁 » 安卓系統 » androidmodem

androidmodem

發布時間: 2022-04-22 07:23:19

① Android系統的Modem是什麼個東東為什麼工程模式要用到Modem通信講詳細些好吧!謝謝!

這樣說吧,在手機上 Modem 可以理解為 電腦上的網卡, 而Sim卡是網卡上的晶元。
通過Modem 可以 與Sim 進行交互 ,讀取相關信息或協議等等。
手機工程模式即是調試模式.一般是手機維修時候使用,它要用到網路。
所以一定要用到Sim卡的網路協議支持,也就一定要通過Modem通信了。

② android手機連接WiFi,WiFi連接modem,在android開發代碼實現如何判斷手機是否能上網。

java">/**
*檢測網路是否連接
*@return
*/
(){
booleanflag=false;
//得到網路連接信息
manager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
//去進行判斷網路是否連接
if(manager.getActiveNetworkInfo()!=null){
flag=manager.getActiveNetworkInfo().isAvailable();
}
if(!flag){
setNetwork();
}else{
isNetworkAvailable();
}
returnflag;
}
/**
*網路未連接時,調用設置方法
*/
privatevoidsetNetwork(){
Toast.makeText(this,"wifiisclosed!",Toast.LENGTH_SHORT).show();

AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("網路提示信息");
builder.setMessage("網路不可用,如果繼續,請先設置網路!");
builder.setPositiveButton("設置",newOnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
Intentintent=null;
/**
*判斷手機系統的版本!如果API大於10就是3.0+
*因為3.0以上的版本的設置和3.0以下的設置不一樣,調用的方法不同
*/
if(android.os.Build.VERSION.SDK_INT>10){
intent=newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS);
}else{
intent=newIntent();
ComponentNamecomponent=newComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
startActivity(intent);
}
});
builder.setNegativeButton("取消",newOnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
}
});
builder.create();
builder.show();
}

/**
*網路已經連接,然後去判斷是wifi連接還是GPRS連接
*設置一些自己的邏輯調用
*/
privatevoidisNetworkAvailable(){

Stategprs=manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
Statewifi=manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(gprs==State.CONNECTED||gprs==State.CONNECTING){
Toast.makeText(this,"wifiisopen!gprs",Toast.LENGTH_SHORT).show();
}
//判斷為wifi狀態下才載入廣告,如果是GPRS手機網路則不載入!
if(wifi==State.CONNECTED||wifi==State.CONNECTING){
Toast.makeText(this,"wifiisopen!wifi",Toast.LENGTH_SHORT).show();
loadAdmob();
}

}

/**
*在wifi狀態下載入admob廣告
*/
privatevoidloadAdmob(){
ll=(LinearLayout)findViewById(R.id.load_ads);
ll.removeAllViews();
adsView=newAdView(this,AdSize.BANNER,"a15194a1ac9505d");
ll.addView(adsView);

adsView.loadAd(newAdRequest());
}

安卓系統手機可以當成貓(Modem)放出熱點讓電腦上網嗎

可以。請您跟隨以下操作指引,享受上網的樂趣吧!以聯想樂Phone為例,第一步:1、開通手機上網功能且設置正常,可以手機上網;2、電腦登陸聯想官方網站下載並安裝驅動程序:通過USB數據線連接樂Phone手機和電腦-->手機上提示是否進入USB模式,選擇「取消」-->雙擊電腦上已下載壓縮文件,解壓選擇點擊「樂Phone91手機助手」文件,按照提示步驟進行安裝;關閉手機推送功能;第二步:右鍵點擊「我的電腦」選擇「屬性」-->硬體-->設備管理器-->調制調解器-->點擊Modem右鍵-->屬性-->高級-->額外的初始化命令,輸入AT 控制命令:聯通:AT+CGDCONT=1,"IP","uninet" ;第三步:新建撥號連接:在「控制面板」—「網路連接」界面,點擊「創建一個新的連接」 -->手動設置我的連接-->用撥號數據機連接-->ISP名稱為樂PHONE-->電話號碼為*99#;第四步:打開新建的撥號連接,用戶名和密碼都空著,撥號號碼為*99#;點擊撥號。

④ 如何修改android模擬器上的IMEI,IMSI,SIM card serial number

手機使用IMEI和IMSI登錄到GSM網路的,由GSM網路側負責將IMSI和映射成手機號(MSISDN),以及執行相反方向的映射。

(一)、SIM card 號的修改:
SIM card號就是印製在SIM上的一串數字。
讀SIM card號的AT命令為:AT+CRSM=176,12258,0,0,10
因此在andorid模擬其源碼中找到該AT命令——在sim_card.c中:
const char*
asimcard_io( ASimCard sim, const char* cmd )
{
int nn;
#if ENABLE_DYNAMIC_RECORDS
int command, id, p1, p2, p3;
#endif
static const struct { const char* cmd; const char* answer; } answers[] =
{
{ "+CRSM=192,28436,0,0,15", "+CRSM: 144,0," },
{ "+CRSM=176,28436,0,0,20", "+CRSM: 144,0," },

{ "+CRSM=192,28433,0,0,15", "+CRSM: 144,0," },
{ "+CRSM=176,28433,0,0,1", "+CRSM: 144,0,55" },

{ "+CRSM=192,12258,0,0,15", "+CRSM: 144,0," },
{ "+CRSM=176,12258,0,0,10", "+CRSM: 144,0,98101430121181157002" },

...

...

因此用UE二進制方式打開emulator-arm.exe 或 emulator-x86.exe,並搜索字元串「98101430121181157002」,然後將其修改成需要的SIM card號。
比如:
00209a00h: 31 30 00 00 2B 43 52 53 4D 3A 20 31 34 34 2C 30 ; 10..+CRSM: 144,0
00209a10h: 2C 39 38 31 30 31 34 33 30 31 32 31 31 38 31 31 ; ,981014301211811
00209a20h: 35 37 30 30 32 00 2B 43 52 53 4D 3D 31 39 32 2C ; 57002.+CRSM=192,

(二)、IMEI、IMSI號的修改:

Java代碼中獲取手機的IMEI號與ISMI號途徑為:

TelephonyManager manager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String imei = manager.getDeviceId();
String imsi = manager.getSubscriberId();

在android的源碼樹中找到類TelephonyManager的實現:
成員函數getDeviceId:
/**
* Returns the unique device ID, for example, the IMEI for GSM and the MEID
* or ESN for CDMA phones. Return null if device ID is not available.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
*/
public String getDeviceId() {
try {
return getSubscriberInfo().getDeviceId();
} catch (RemoteException ex) {
return null;
} catch (NullPointerException ex) {
return null;
}
}

成員函數getSubscriberId:
/**
* Returns the unique subscriber ID, for example, the IMSI for a GSM phone.
* Return null if it is unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
*/
public String getSubscriberId() {
try {
return getSubscriberInfo().getSubscriberId();
} catch (RemoteException ex) {
return null;
} catch (NullPointerException ex) {
// This could happen before phone restarts e to crashing
return null;
}
}

上面兩個成員函數最終調用共同的一個私有成員函數getSubscriberInfo():
private IPhoneSubInfo getSubscriberInfo() {
// get it each time because that process crashes a lot
return IPhoneSubInfo.Stub.asInterface(ServiceManager.getService("iphonesubinfo"));
}

而上面私有函數getSubscriberInfo獲取的手機IMSI和IMEI號被硬編碼在文件android_modem.c中:
/* the Android GSM stack checks that the operator's name has changed
* when roaming is on. If not, it will not update the Roaming status icon
*
* this means that we need to emulate two distinct operators:
* - the first one for the 'home' registration state, must also correspond
* to the emulated user's IMEI
*
* - the second one for the 'roaming' registration state, must have a
* different name and MCC/MNC
*/

#define OPERATOR_HOME_INDEX 0
#define OPERATOR_HOME_MCC 310
#define OPERATOR_HOME_MNC 260
#define OPERATOR_HOME_NAME "Android"
#define OPERATOR_HOME_MCCMNC STRINGIFY(OPERATOR_HOME_MCC) \
STRINGIFY(OPERATOR_HOME_MNC)

#define OPERATOR_ROAMING_INDEX 1
#define OPERATOR_ROAMING_MCC 310
#define OPERATOR_ROAMING_MNC 295
#define OPERATOR_ROAMING_NAME "TelKila"
#define OPERATOR_ROAMING_MCCMNC STRINGIFY(OPERATOR_ROAMING_MCC) \
STRINGIFY(OPERATOR_ROAMING_MNC)
/* a function used to deal with a non-trivial request */
typedef const char* (*ResponseHandler)(const char* cmd, AModem modem);

static const struct {
const char* cmd; /* command coming from libreference-ril.so, if first
character is '!', then the rest is a prefix only */

const char* answer; /* default answer, NULL if needs specific handling or
if OK is good enough */

ResponseHandler handler; /* specific handler, ignored if 'answer' is not NULL,
NULL if OK is good enough */
} sDefaultResponses[] =
{
/* see onRadioPowerOn() */
{ "%CPHS=1", NULL, NULL },
{ "%CTZV=1", NULL, NULL },

...

{ "!+VTS=", NULL, handleSetDialTone },
{ "+CIMI", OPERATOR_HOME_MCCMNC "000000000", NULL }, /* request internation subscriber identification number */
{ "+CGSN", "000000000000000", NULL }, /* request model version */
{ "+CUSD=2",NULL, NULL }, /* Cancel USSD */

...

/* end of list */
{NULL, NULL, NULL}

};

因此用UE二進制方式打開emulator-arm.exe 或 emulator-x86.exe,並搜索字元串"+CGSN"修改為需要的IMEI號;搜索"+CIMI"修改為需要的IMSI號。需要注意的是 IMSI 號的頭六個數字"310260"不能修改,否則模擬器無法與網路連接。
例如:
001fc700h: 33 00 41 00 48 00 21 2B 56 54 53 3D 00 2B 43 49 ; 3.A.H.!+VTS=.+CI
001fc710h: 4D 49 00 33 31 30 32 36 30 30 30 30 30 30 30 30 ; MI.3102600000000
001fc720h: 30 30 00 2B 43 47 53 4E 00 30 30 30 30 30 30 30 ; 00.+CGSN.0000000
001fc730h: 30 30 30 30 30 30 30 30 00 2B 43 55 53 44 3D 32 ; 00000000.+CUSD=2

⑤ Android里的掛載Modem分區是什麼意思

掛載Modem是指給磁碟分區(包括被虛擬出來的磁碟分區)分配一個盤符。 在第三方軟體,如磁碟分區管理軟體、虛擬磁碟軟體中,也附帶有掛載功能。 在linux操作系統中, 掛載是指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。 我們要訪問存儲設備中的文件,必須將文件所在的分區掛載到一個已存在的目錄上, 然後通過訪問這個目錄來訪問存儲設備。

⑥ android kernel modem哪個先起來

主要看是高通還是MTK了。不過大致相當,只是log文件名稱不一樣而已
手機的android log(包含 main_log、events_log、kernel_log),mainlog記錄手機android上層app以及framework相關活動的log,比如你寫的app列印的log,就在這裡面;eventslog則主要是ActivityManager、powerManager等相關的log;Kernellog則主要是驅動相關的log。
Modem log,主要是通話相關的,比如信號強弱、連接那個網路等等
還有網路相關的netlog,看網路鏈接情況,抓取網路包等等
主要是以上這三個,其它還有data/anr 目錄下的traces/tombstones等等,分析死機、重啟還是很重要的。
看應用申請什麼許可權,就看mainlog就行,但是不一定有,因為一般手機log不會放開。
你可以在終端里鍵入命令查看其申請了什麼許可權: adb shell mpsys package <包名>,或者反編譯其apk,查看其AndroidManifest.xml文件。

⑦ 安卓的ModemLog怎麼設置

  • Common UI、ModemLog、MobileLog、NetLog ,從這些的名稱不難看出這是一些記錄系統事件的進程:

    • 其中ModemLog主要記錄手機數據連接所產生的事件,MobileLog記錄系統改變產生的事件,如修改許可權,NetLog這個進程記錄網路連接產生的事件。

    • 既然是記錄系統事件的,普通用戶就沒有必要去知道系統發生哪些事件,那是為開發人員調試准備的,可以卸載。

  • 解決辦法:

    • root手機:可用360手機助手獲取root許可權

    • 然後是進入管理程序點擊正在運行這個選項,找到MobileLog.apk或者ModemLog.apk進程,有可能這兩個都有,找到點擊進入,點擊停止,然後退出

    • 打開RE文件管理器(需要ROOT許可權),進入到systemapp文件夾,掛載讀寫,找到MobileLog.apk、ModemLog.apk這兩個文件,逐個刪除,然後退出RE文件管理器,重啟系統即可

  • 建議在操作之前做好整個system文件的備份,以防萬一。另外,建議平時還是把超級授權設置裡面的超級用戶關閉並隱藏,這樣系統更安全。

⑧ android modem模塊怎麼編譯

(1)MT6577以及之前的chip平台(如MT6575,73等) 的modem編譯環境和MTK的Feature Phone的編譯環境一樣,即Windows+RVCT
(2)從MT6589開始,modem編譯環境已經切換到Linux OS + GCC[KEYWORD]modem編譯[SOLUTION]
(1)MT6577以及之前的chip平台的modem編譯環境文檔,請到DCC上搜索
MTK_MakeBuild_Design_Customer.docx
,該文檔詳細介紹環境搭建和編譯流程介紹。
(2)MT6589以及後續chip的modem編譯環境參考文檔,請到DCC上搜索
該文檔詳細介紹環境搭建和編譯流程介紹。

⑨ Android開發中的radio與modem分別是什麼

能說詳細點嗎?radio就很籠統,是radioButton還是什麼,後面的modem就是個數據機,管理著通話上網以及一些通信的東西

熱點內容
安卓微信淺色模式怎麼恢復 發布:2025-05-16 06:27:53 瀏覽:239
美嘉演算法口訣 發布:2025-05-16 06:03:15 瀏覽:952
c程序編譯連接 發布:2025-05-16 06:02:36 瀏覽:964
腳本魔獸 發布:2025-05-16 06:01:52 瀏覽:330
文件夾python 發布:2025-05-16 06:01:43 瀏覽:627
電腦我的世界伺服器游戲幣 發布:2025-05-16 05:27:25 瀏覽:489
索尼手機為什麼不能用安卓10 發布:2025-05-16 05:18:46 瀏覽:784
蔚來es6選擇哪些配置實用 發布:2025-05-16 05:18:05 瀏覽:130
小米如何掃碼wifi密碼 發布:2025-05-16 05:13:38 瀏覽:807
樓層密碼是什麼意思 發布:2025-05-16 05:13:37 瀏覽:13