當前位置:首頁 » 網路資訊 » 後天怎樣將數據傳給app
擴展閱讀

後天怎樣將數據傳給app

發布時間: 2022-01-16 14:41:34

『壹』 如何將手機軟體傳給另外一個手機

可以通過手機QQ,將軟體發送給另外一部手機,方法如下:

1、打開手機QQ,選擇好友的QQ,點擊進去。

『貳』 怎樣把數據從一個程序傳給另一個程序

有好幾種基本的方法可以完成這項任務----你可以通過文件或內存來傳遞這些數據。這些方法的步驟都相當簡潔:首先,定義在何處存放數據,如何獲取數據,以及如何通知另一個程序來獲取或設置數據;然後,你就可以獲取或設置數據了,盡管使用文件的技術定義和實現起來都比較簡單,但它的速度往往比較慢(並且容易引起混亂)。因此,這里重點討論內存數據轉移技術。下面將依次詳細地分析這一過程的每一個環節: 定義在何處存放數據。當你編寫要共享數據的兩個程序時,你應該讓程序知道要訪問的數據存放在何處。這個環節同樣有幾種實現方法:你可以在一個(或每個)程序中建立一個固定的內部緩沖區,並在兩個程序之間傳遞指向這個緩沖區的指針;你也可以為數據分配動態內存,並在兩個程序之間傳遞指向該數據的指針;如果要傳遞的數據很小,你還可以通過CPU的通用寄存器來傳遞數據(這種可能性很小,因為x86結構的寄存器很少)。分配動態內存是最靈活和模塊性最強的方法。 定義獲取數據的方法。這個環節非常簡潔——你可以使用fmemcpy()或等價的內存拷貝函數。顯然,在獲取和設置數據時都可以使用這個函數。 定義通知另一個程序的方法。因為DOS並不是一個多任務操作系統,所以其中一個(或兩個)程序的一部分必須已經駐留在內存中,並且可以接受來自另一個程序的調用。同樣,這個環節也有幾種方法可供選擇:第一個程序可以是一個列入CONFIG.SYS中的驅動程序,它在系統啟動時就被裝入內存;第一個程序也可以是一個TSR(終止並駐留)程序,在它退出時會把與第二個程序相互作用的那部分程序駐留在內存中;此外,你也可以在第一個程序中利用system()或spawn()函數(見20.11)來啟動第二個程序。你可以根據需要選擇合適的方法。因為有關DOS驅動程序的數據傳遞在DOS文檔中已經有詳盡的描述,而有關system()和spawn()函數的內容也已經在前文中介紹過,因此下面介紹TSR方法。 下面的例子給出了兩個程序:第一個程序是一個完整的TSR程序,但為了突出整個過程中的關鍵環節,它寫得比較單薄(見20.15中的解釋)。這個TSR程序先是安裝了一個中斷63H的中斷服務程序,然後調用終止並駐留退出函數,在執行這個TSR程序後,執行下文給出的另一個程序。這個程序只是簡單地初始化一個對中斷63H的調用(類似於使用中斷21H調用),並且把「Hello There」傳送給上述TSR程序 # include <stdlib. h> # include <dos. h> # include <string. h> void SetupPointers (void) ; void OutputString(char * ); # define STACKSIZE 4096 unsigned int near OldStackPtr; unsigned int near OldStackSeg; unsigned int _near MyStackOff ; unsigned int _near MyStackSeg; unsigned char_near MyStack[STACKSIZE]; unsigned char far * MyStackPtr= (unsigned char_far * )MyStack; unsigned short AX, BX,CX, DX,ES; / * My interrupt handler * / void_interrupt_far_cdecl NewCommVector ( unsigned short es, unsigned short ds, unsigned short di, unsigned short si, unsigned short bp, unsigned short sp, unsigned short bx, unsigned short dx, unsigned short cx, unsigned short ax, unsigned short ip, unsigned short cs, unsigned short flags) ; / * Pointers to the previous interrupt handier * / void(_interrupt_far_cdecl * CommVector)(); union REGS regs; struet SREGS segregs ; # define COMM_VECTOR 0x63 / * Software interrupt vector * / / * This is where the data gets passed into the TSR * / char_far * eallerBufPtr; char localBuffer[255]; / * Limit of 255 bytes to transfer * / char_far * localBufPtr=(ehar_far * )loealBuffer; unsigned int ProgSize= 276; / * Size of the program in paragraphs * / void main(int argc,char * * argv) { int i, idx; / * Set up all far pointers * / SetupPointers () ; / * Use a cheap hack to see if the TSR is already loaded tf it is, exit,doing nothing * / comm_veetor =_dos_getvect (COMM_VECTOR) ; if(((long)eomm_vector & 0xFFFFL) == ((long) NewCommVector & OxFFFFL ) ) { OutputString("Error :TSR appears to already be loaded. \n"); return ; / * If everything's set,then chain in the TSR * / _dos_setvect (COMM_VECTOR ,NewCommVector) ; / * Say we are loaded * / OutputString("TSR is now loaded at 0x63\n"); / * Terminate, stay resident * / dos_keep (0, ProgSize ) ; } / * Initializes all the pointers the program will use * / void Set upPointers ( ) { int idx ; / * Save segment and offset of MyStackPtr for stack switching * / MyStackSeg = FP_SEG (MyStackPtr) ; MyStackOff = FP_OFF (MyStackPtr) ; / * Initialize my stack to hex 55 so I can see its footprint if I need to do debugging * / for (idx = 0 ;idx<STACKSIZE ; idx ++ ) { MyStack [idx] = 0x55 ; } } void _interrupt_ far_cdecl NewCommVector ( unsigned short es, unsigned short ds, unsigned short di, unsigned short si, unsigned short bp, unsigned short sp, unsigned short bx, unsigned short dx, unsigned short cx, unsigned short ax, unsigned short ip, unsigned short cs, unsigned short flags) { AX = ax; BX = bx ; CX = cx; DX = dx ; ES = es ; / * Switch to our stack so we won't run on somebody else's * / _asm { ;set up a local stack eli ; stop interrupts mov OldStackSeg,ss ; save stack segment mov OldStackPtr,sp ; save stack pointer (offset) mov ax,ds ; replace with my stack s mov ss,ax ; ditto mov ax,MyStackOff ; replace with my stack s add ax,STACKSIZE-2 ;add in my stack size mov sp ,ax ; ditto sti ; OK for interrupts again } switch (AX) { case 0x10; / * print string found in ES:BX */ / * Copy data from other application locally * / FP_ SEG (callerBufPtr) = ES ; FP_OFF (callerBufPtr) = BX ; _fstrcpy (localBufPtr, callerBufPtr ) ; / * print buffer 'CX' number of times * / for(; CX>0; CX--) OutputString (localBufPtr) ; AX=1; /* show success */ break ; case 0x30: /* Unload~ stop processing interrupts * / _dos_setvect (COMM_VECTOR ,comm_vector) ; AX=2; /* show success */ break ; default : OutputString (" Unknown command\r\n" ) ; AX= 0xFFFF; / * unknown command-1 * / break ; } / * Switch back to the caller's stack * / asm { cli ;turn off interrupts mov ss,OldStackSeg ;reset old stack segment mov sp,OldStackPtr ;reset old stack pointer sti ;back on again } ax=AX; /* use return value from switch() */ } / * avoids calling DOS to print characters * / void OutputString(char * str) { int i ; regs. h. ah = 0x0E ; regs. x. bx = 0 ; for(i=strlen(str) ; i>0; i--,str++){ regs. h. al= * str; int86 (0xl0, ®s, ®s) ; } } 上述程序是這兩個程序中的TSR程序。這個程序中有一個NewCommVector()函數,它被安裝在中斷63H(63H通常是一個可用的向量)處作為中斷服務程序。當它被安裝好後,它就可以接收命令了。switch語句用來處理輸入的命令,並作出相應的反應。筆者隨意選擇了0x1O和0x30來代表這樣兩條命令:「從ES:BX處復制數據,並列印到屏幕上,CX中的數值為列印次數」;「脫離中斷63H,並停止接收命令」。下面是第二個程序——向中斷63H發送命令的程序(注意它必須在Large模式下編譯)。 # include <stdlib. h> # include <dos. h> # define COMM VECTOR 0x63 union REGS regs; struct SREGS segregs ; char buffer[80]; char _far * buf=(char_far *)buffer; main (int argc,char * * argv) { intcnt; cnt = (argo= =1 ? 1:atoi(argv[1])) ; strcpy (bur, "Hello There\r\n" ) ; regs. x. ax= 0x10; regs. x. cx=cnt ; regs. x. bx=FP OFF(buf); segregs, es=FP SEG(buf) ; int86x(COMM_VECTOR ,®s, &segregs) ; printf ("TSR returned %d\n" ,regs. x. ax) ; } 你可能會認為這個短小的程序看上去和那些通過調用int 21或int 10來在DOS中設置或檢索信息的程序差不多。如果你真的這么想,那就對了。唯一的區別就是現在你所用的中斷號是63H,而不是21H或10H。上述程序只是簡單地調用前文中的TSR程序,並要求後者把es:bX所指向的字元串列印到屏幕上,然後,它把中斷處理程序(即那個TSR程序)的返回值列印到屏幕上。 當字元串"Hello There」被列印到屏幕上後,在兩個程序之間傳遞數據的全部必要步驟就都完成了。這個例子的真正價值在於它能夠舉一反三。現在你能很輕松地編寫一個這樣的程序,它將發送一條類似於「把要求你列印的最後一個字元串傳遞給我」的命令。你所要做的就是在前述TSR程序的switch語句中加入這條命令,然後再寫一個程序來發送這條命令。此外,你也可以在第二個程序中利用20.11中所介紹的system()或spawn()函數來啟動前述TSR程序。由於TSR程序會檢查自己是否已被裝入,因此你只需裝入一次TSR程序,就可以多次運行第二個程序了。在所有要和前述TSR程序通信的程序中,你都可以使用這里所說的方法。 在建立前述TSR程序時,需要有幾個前提條件。其一就是沒有其它重要的中斷服務程序也在處理中斷63H。例如,筆者原來在程序中使用的是中斷67H,結果該程序能正常裝入並運行,但此後筆者就無法編譯程序了,因為Microsoft用來運行C編譯程序的DOS擴展程序也要使用中斷67H。在筆者發送了命令0x30(讓程序卸載自身)後,編譯程序又能正常運行了,因為DOS擴展程序的中斷處理程序已被該程序恢復了。 第二個前提條件與駐留檢查在關。筆者假設永遠不會有另一個中斷處理程序使用和NewCommVector()相同的近程型地址,盡管這種巧合的可能性極小,但讀者應該知道該程序並不是萬無一失的。在該程序中,筆者特意讓NewCommVector()使用自己的棧,以避免它運行在調用它的程序的棧上,但是,筆者還是假設調用所需的任何函數都是安全的。注意,該程序沒有調用printf(),因為它佔用較多的內存,並且要調用DOS(int 21)來列印字元。在該程序中,當中斷63H發生時,筆者不知道DOS是否可以被調用,因此不能假設可以使用DOS調用。 注意,在該程序中,可以調用那些沒有用到DOS int21服務程序的函數來完成所需的任務,如果必須使用一個DOS服務程序,你可以在中斷63H發生時檢查DOS忙標志,以確定當時DOS是否可以被調用。最後,對dos_keep()作一點說明:該函數要求知道在程序退出時要在內存中保留多少段(每段16位元組)數據。在本例這個TSR程序中,提供給該函數的段數(276)稍大於整個可執行程序的大小。當你的程序變大時,提供給該函數的段數也必須增大,否則就會出現一些異常現象。

希望採納

『叄』 怎樣把手機里的軟體和使用數據轉移到另一個手機求高手

換手機怎麼轉移數據?換新手機是件值得高興的事情,但舊手機中的通訊錄、照片、微信聊天記錄等等數據怎麼辦呢?其實為了防止數據丟失,我們可以直接將其導出新手機,今天小編就總結了一下導入數據的方法,下面就分享給你。

微信聊天記錄刪除了怎麼恢復?不知道小夥伴們學會了嗎,這是小編親身體驗以後,覺得算是相當不錯的回復微信聊天記錄的方法。如果小夥伴們真的不小心刪除了重要的微信聊天記錄,千萬不要著急,更不要以為把微信卸載重裝可以恢復聊天記錄!一定要冷靜,選擇適合自己的數據恢復辦法進行恢復。希望這篇文章可以幫助到你。

『肆』 華為手機之間怎麼互傳app

手機資料互傳有多種方式,利用手機內置程序、雲盤傳輸、聊天軟體等等。

選擇傳輸方式之前,區分手機的傳輸類型,能夠便於選擇最佳的傳輸方式:

第一種情況,同品牌同種系統的手機之間進行傳輸資料;
第二種情況,不同品牌不同系統的手機之間進行傳輸資料(蘋果與安卓手機);
第三種情況,不同品牌同種系統的手機之間進行傳輸資料(同為安卓手機)。
除第一種情況可以使用手機內置傳輸程序進行資料傳輸外,二、三種情況傳輸資料的方法較為類似。一起來看看如何分類進行資料傳輸吧!

如何實現不同手機之間的資料傳輸

一、同品牌手機之間的資料傳輸方法

同品牌手機之間資料傳輸效率最高的方式是使用內置的傳輸程序。

1、安卓手機,這里以華為手機為例進行講解。華為手機可以使用「Huawei Share」這項功能進行分享。兩台華為手機分別打開「Huawei Share」,勾選需要傳輸的資料然後點擊分享,能夠在附近的人中發現另外一台打開「Huawei Share」設備的手機,另外一台手機點擊接受即可建立文件傳輸。

2、蘋果手機,使用的是隔空投送這個功能。在蘋果手機的設置、通用中打開隔空投送這個功能。需要勾選「所有人」這個選項,將會利用手機藍牙或無線區域網來建立傳送連接。具體的實現過程同華為的「Huawei Share」相似,同樣是選擇傳輸的資料,點擊共享,並選擇需要建立傳輸共享的對端設備。

二、非同一品牌手機之間的資料傳輸

1、利用網路雲盤

通過各類的雲盤軟體,可以實現資料互傳的目的。下圖是我曾經使用網路雲盤備份通訊錄的截圖,除此之外,還可以實現視頻、文件、音頻等資料的傳輸。

2、利用通訊軟體

這種方式想必大家較為熟悉,使用的也較多。

例如微信、QQ、飛鴿傳書等等,實現起來也較為方便。

3、利用外設傳輸

可以利用手機支持的OTG介面這一特性,將手機中需要轉存的數據保存至包括TF卡、SD卡等,然後在將資料轉拷貝至另外一台手機。

『伍』 一個手機的應用數據怎樣轉到另一個手機上,求一些方法

換手機怎麼轉移數據?換新手機是件值得高興的事情,但舊手機中的通訊錄、照片、微信聊天記錄等等數據怎麼辦呢?其實為了防止數據丟失,我們可以直接將其導出新手機,今天小編就總結了一下導入數據的方法,下面就分享給你。

方法一:藉助iCloud雲備份
首先將手機連接WiFi,然後在設置中依次點擊「Apple ID——iCloud——iCloud雲備份」,開啟iCloud雲備份功能後再點擊「立即備份」。

備份完成後,我們就可以將這些數據下載到新手機上了,首先將新手機開機,在「應用與數據」中點擊「從iCloud雲備份恢復」,接著登錄自己的Apple ID,選擇備份進行恢復就行。

由於iCloud只提供5GB的免費存儲空間,有些數據多的小夥伴可能無法備份完全,不用擔心,可以直接使用「果備份」。這是一款專業的蘋果數據備份軟體,可以一鍵備份我們設備中的微信聊天記錄、簡訊、照片、通訊錄等多項數據。

備份完成後,還可以直接預覽和導出備份好的數據,如果是換機,可以直接用新手機連接至果備份,點擊「恢復至備份」,將舊手機中備份好的數據,一次性轉移至新手機哦!

換手機怎麼轉移數據?上面就是兩個簡單好用的數據備份與轉移方法,如果你正好有此需要,又不知道如何操作,那上面兩個方法你一定不要錯過哦!

『陸』 怎樣把老手機數據傳輸給新手機

在應用里下載一個軟體,手機克隆就可以把舊手機數據傳輸到新手機上的。

『柒』 怎樣將資料庫和APP相連

1、用你搭建的DBHelper(繼承與SQLiteOpenHelper)
2、獲取到DBHelper實例,調用getReadableDatabase()(用於讀) 或者 getWritableDatabase(用於寫)
3、再調用其具體方法如 insert,delete等

『捌』 手機怎樣互傳數據

1、可以使用【vivo互傳】這款軟體;

2、在需要發送文件的手機中點擊【我要發送】,創建熱點,接收的手機中打開【設置】-【WiFi】,連接到一個【vivo@】為開頭的網路;

3、連接成功後在接收方的手機上進入【選擇文件】的界面,上面有【圖片】、【媒體】、【通訊錄】和【其他文件】四種不同的標簽頁,選中文件後點擊頁面的【發送】;

4、接收的手機上會在右上角一個時鍾圖標處出現一個紅色數量的角標,點擊進入【記錄】頁面,在裡面可以查看到您接收的文件和您發送的文件記。
兩個蘋果iPhone手機之間如何互傳文件,可以藉助第三方工具來進行互傳文件,下面看看通過手機QQ來互傳文件。

1、在自己的手機QQ點擊頭像。

蘋果手機怎麼互傳文件

2、再選擇我的文件。

再選擇我的文件

3、在這里點擊面對面快傳。

在這里點擊面對面快傳

4、選擇發送文件還是接收。

選擇發送文件還是接收

5、再點選擇對方是什麼設備,點擊蘋果。

再點選擇對方是什麼設備

6、2台蘋果手機都像上面一樣進入手機QQ打開,一個選擇接收一個選擇發送。然後在這里進行對接,發送需要傳送的文件即可。
互傳主要有兩大功能:第一種只需要在vivo中選擇【iPhone換機】功能,登錄蘋果賬號之後等待同步即可;另外一種是通過打開vivo手機的熱點,使用iPhone搜索到熱點之後就可以在【互傳】應用中傳輸文件數據。具體使用步驟如下:

1、首先在蘋果的應用商城中下載【互傳】應用,目前支持兩種iPhone換機的方式,一個是登錄蘋果設備的iCloud賬號,通過iCloud進行轉移備份數據。還有一種是本地文件的零流量傳輸;

2、第一種只需要在vivo中選擇【iPhone換機】功能,登錄蘋果賬號之後需要等待同步,隨後就會自動同步在iCloud上的資料文件,可以同步聯系人、圖片以及視頻,由於兩個系統軟體並不互通,因此這種方法無法傳輸應用;

3、零流量傳輸需要我們連接vivo手機打開的熱點,在軟體中選擇【我要傳輸】,然後選擇以vivo@開頭的名稱的熱點,支持視頻、文件、音樂、聯系人等類型的數據同步,選擇完成之後就可以開啟傳輸;

4、還有iPhone傳文件的功能,同樣是使用vivo手機中打開熱點,打開iPhone上的互聯應用,搜索到vivo手機的熱點之後,就可以選擇不同的文件,選擇完成之後點擊右下角的【發送】就可以將文件傳輸到iPhone中。

『玖』 瀏覽器 怎麼 傳 數據 給app

今天老大給我提了一個需求叫我調研一下,他已經測試了IOS平台上是可以的,需求很簡單就是在系統瀏覽器中通過輸入一個uri就可以打開相應的app。
比如你在IOS中的系統瀏覽器中輸入:tel://123,就會跳到撥打電話頁面而且撥打號碼是123,像這樣的命令,老大他用了小米手機測試了一下,發現可以的,所以他就以為Android的也是可以的,但是當我用三星和htc手機測試發現不行,這時候老大就糾結了,但是我個人認為,我們都知道小米手機是模仿IOS的,沒想到模仿的這么想。所以老大就叫我去調研,我查閱了資料之後,找到了解決辦法如下
先上一份代碼,經樓主驗證是絕對可以用的而且也比較清晰的代碼!(ps:還是先劇透下吧,第三方大部分瀏覽器無法成功。)

點擊瀏覽器中的URL鏈接,啟動特定的App。
首先做成HTML的頁面,頁面內容格式如下:
<a href="[scheme]://[host]/[path]?[query]">啟動應用程序</a>

這一句就可以了。

各個項目含義如下所示:
scheme:判別啟動的App。 ※詳細後述
host:適當記述
path:傳值時必須的key ※沒有也可以
query:獲取值的Key和Value ※沒有也可以

作為測試好好寫了一下,如下:
<a href="myapp://jp.app/openwith?name=zhangsan&age=26">啟動應用程序</a>

接下來是Android端。
首先在AndroidManifest.xml的MAIN Activity下追加以下內容。(啟動Activity時給予)
※必須添加項
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter>

HTML記述的內容加入<data …/>。
其中必須的內容僅scheme,沒有其他內容app也能啟動。

※注意事項:intent-filter的內容【android.intent.action.MAIN】和 【android.intent.category.LAUNCHER】這2個,不能與這次追加的內容混合。
所以,如果加入了同一個Activity,請按以下這樣做,否則會導致應用圖標在桌面消失等問題。

<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter>

這樣的話,沒有問題。

接下來在Activity中需要取值的地方添加以下代碼,我是直接寫在OnCreate函數里的:
Intent i_getvalue = getIntent();
String action = i_getvalue.getAction();

if(Intent.ACTION_VIEW.equals(action)){
Uri uri = i_getvalue.getData();
if(uri != null){
String name = uri.getQueryParameter("name");
String age= uri.getQueryParameter("age");
}
}
這樣就能獲取到URL傳遞過來的值了。
——————————————————————————————————我是分割線————————————————————————————————————

代碼完了,是不是很驚奇的發現用瀏覽器輸入

myapp://jp.app/openwith?name=zhangsan&age=26

是不是404,打不開?
樓主你這不是騙人么!樓主你個混蛋啊。
客官,稍安勿躁啊,你看看你用的瀏覽器是什麼?UC,獵豹,歐朋?放棄吧,試試系統自帶瀏覽器或者谷歌瀏覽器吧。肯定能成功的,不能成功的話再來坑我。哈哈。

——————————————————————————————————我是分割線————————————————————————————————————

突然覺得好悲哀,好不容易get了這個技能,卻不能被第三方瀏覽器使用。在這個android瀏覽器大部分被第三方占據著的時代不得不說是個悲劇啊。

接下來還是說說為什麼第三方瀏覽器不能成功吧。首先,我發現的是UC瀏覽器,如果你使用了自己的scheme,而不是http的話,uc會默認在你的scheme前面添加http://。這太坑爹了。其他瀏覽器沒看是不是同樣的情況。發現這個問題後我就試著把自己的scheme換成http。然後滿懷期待的又跑了一遍,結果還是坑爹了。所以我想會不會是第三方瀏覽器對url做了處理。到這里,我也無可奈何了。我測試了UC,獵豹,歐朋,這3個都不支持。系統自帶的和谷歌瀏覽器是支持的。

最後再補充個線索吧,在瀏覽器里搜索網路應用。進了他們的頁面後,他們是可以實現在各種瀏覽器啟動已經安裝好的本地app的。看到這個後我就看了下他們頁面的源碼。

在這里他們頁面添加了個data-sentintent的標簽,看到這里,應該能確定第三方瀏覽器應該是默認都不支持發intent的,只能自己起一個。根據前端說,這個標簽應該是自定義的。我們前端看源碼的時候發現是這樣的

所以最後的結果應該是網路這邊是起了個埠,然後在應用里啟用了一個服務,來監聽這個埠,來獲取這個intent。大概就這個思路了。不過樓主沒有實際去操作。項目時間緊,太麻煩了。對了,網路這個是有集成他們inapp這個sdk的。
再附上stackoverflow兩個相關鏈接:http://stackoverflow.com/questions/3469908/make-a-link-in-the-android-browser-start-up-my-app
http://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser