精华内容
下载资源
问答
  • 手机mipi数据传输

    千次阅读 2015-12-02 17:10:52
    随着客户要求手机摄像头像素越来越高,同时要求高的传输速度,传统的并口传输越来越受到挑战。提高并口传输的输出时钟是一个办法,但会导致系统的EMC设计变得越来困难;增加传输线的位数是,但是这又不符合小型化的...

     如下转自http://blog.163.com/zz_forward/blog/static/2128982222012869180987

    随着客户要求手机摄像头像素越来越高,同时要求高的传输速度,传统的并口传输越来越受到挑战。提高并口传输的输出时钟是一个办法,但会导致系统的EMC设计变得越来困难;增加传输线的位数是,但是这又不符合小型化的趋势。采用MIPI接口的模组,相较于并口具有速度快,传输数据量大,功耗低,抗干扰好的优点,越来越受到客户的青睐,并在迅速增长。例如一款同时具备MIPI和并口传输的8M的模组,8位并口传输时,需要至少11根的传输线,高达96M的输出时钟,才能达到12FPS的全像素输出;而采用MIPI接口仅需要2个通道6根传输线就可以达到在全像素下12FPS的帧率,且消耗电流会比并口传输低大概20MA。由于MIPI是采用差分信号传输的,所以在设计上需要按照差分设计的一般规则进行严格的设计,关键是需要实现差分阻抗的匹配,MIPI协议规定传输线差分阻抗值为80-125欧姆。

     MIPI接口,高像素摄像头的必由之路——手机摄像头MIPI技术浅谈 - zane - 振哥的私房菜

     

    上图是个典型的理想差分设计状态,为了保证差分阻抗,线宽和线距应该根据软件仿真进行仔细选择;为了发挥差分线的优势,差分线对内部应该紧密耦合,走线的形状需要对称,甚至过孔的位置都需要对称摆放;差分线需要等长,以免传输延迟造成误码;另外需要注意一点,为了实现紧密的耦合,差分对中间不要走地线,PIN的定义上也最好避免把接地焊盘放置在差分对之间(指的是物理上2个相邻的差分线)。

    下面简单介绍MIPI的通道模式和线上电平。在正常的操作模式下,数据通道处于高速模式或者控制模式。在高速模式下,通道状态是差分的0或者1,也就是线对内P比N高时,定义为1,P比N低时,定义为0,此时典型的线上电压为差分200MV,请注意图像信号仅在高速模式下传输;在控制模式下,高电平典型幅值为1.2V,此时P和N上的信号不是差分信号而是相互独立的,当P为1.2V,N也为1.2V时,MIPI协议定义状态为LP11,同理,当P为1.2V,N为0V时,定义状态为LP10,依此类推,控制模式下可以组成LP11,LP10,LP01,LP00四个不同的状态;MIPI协议规定控制模式4个不同状态组成的不同时序代表着将要进入或者退出高速模式等;比如LP11-LP01-LP00序列后,进入高速模式。下图为线上电平的图示MIPI接口,高像素摄像头的必由之路——手机摄像头MIPI技术浅谈 - zane - 振哥的私房菜

     

    zane:MIPI接口是一种串口,MIPI相比较DVP接口的优势在于 速度快更有2,4 lane 可选。

    如下也是转过来的,方便查看 ,转自http://blog.csdn.net/g_salamander/article/details/9163455

    以下是最近几个月在调试 MIPI DSI / CSI 的一些经验总结,因为协议有专门的文档,所以这里就记录一些常用知识点:

    一、D-PHY

    1、传输模式

    LP(Low-Power) 模式:用于传输控制信号,最高速率 10 MHz

    HS(High-Speed)模式:用于高速传输数据,速率范围 [80 Mbps, 1Gbps] per Lane

    传输的最小单元为 1 个字节,采用小端的方式及 LSB first,MSB last。

    2、Lane States

    *  LP mode 有 4 种状态: LP00、LP01(0)、LP10(1)、LP11 (Dp、Dn)

    * HS mode 有 2 种状态: HS-0、HS-1

    HS 发送器发送的数据 LP 接收器看到的都是 LP00,

    3、Lane Levels

    * LP: 0 ~ 1.2V

    * HS: 100 ~ 300mV,HS common level = 200mV,swing = 200 mv

    4、操作模式

    在数据线上有 3 种可能的操作模式:Escape mode, High-Speed (Burst) mode and Control mode,下面是从停止状态进入相应模式需要的时序:

    * Escape mode 进入时序:LP11→LP10→LP00→LP01→LP00,退出时序:LP10→LP11

    当进入 Escape mode 需要发送 8-bit entry command 表明请求的动作,比如要进行低速数据传输则需要发送 cmd: 0x87,进入超低功耗模式则发送 cmd: 0x78。在 DSI 中 LP 通讯只用 Data Lane 0。

    * High-Speed mode 进入时序:LP11→LP01→LP00→SoT(0001_1101),退出时序:EoT→LP11,时序图如下:


    * Turnaround 进入时序:LP11→LP10→LP00→LP10→LP00,退出时序:LP00→LP10→LP11

    这是开启 BTA 的时序,一般用于从 slave 返回数据如 ACK: 0x84。

    5、时序要求

    在调试 DSI 或者 CSI 的时候, HS mode 下的几个时序非常重要:T_LPX,T_HS-SETTLE ≈ T_HS-PREPARE + T_HS-ZERO,T_HS-TRAIL,一般遵循的原则为:Host 端的 T_HS-SETTLE > Slave 端的 T_HS-SETTLE。

    二、DSI

    1、线路构成

    在 DSI 中需要 1 根时钟线以及 1 ~ 4 根数据线。

    2、两种接口的 LCD

    * Command mode(对应 MPU 接口)

    * Video mode(对应 RGB 接口)

    该模式下视频数据只能通过 HS mode 传输。

    3、数据包类型

     短包:4 bytes,由 3 部分组成:

    * Data Identifier (DI) * 1byte: Contains the Virtual Channel[7:6] and Data Type[5:0].

    * Packet Data * 2byte:Length is fixed at two bytes

    * Error Correction Code (ECC) * 1byte:allows single-bit errors to be corrected and 2-bit errors to be detected.

    长包:6 ~ 65541 bytes,同样由 3 部分组成:

    * Packet Header(4 bytes) - 包头

    Data Identifier (DI) * 1byte:Contains the Virtual Channel[7:6] and Data Type[5:0].
    Word Count (WC) * 2byte:defines the number of bytes in the Data Payload.
    Error Correction Code (ECC) * 1byte:allows single-bit errors to be corrected and 2-bit errors to be detected.

    * Data Payload(0~65535 bytes) - 有效数据
    Length = WC × bytes

    * Packet Footer(2 bytes):Checksum - 包尾
    If the payload has length 0, then the Checksum calculation results in FFFFh
    If the Checksum isn’t calculated, the Checksum value is 0000h

    4、控制器到外设发送的包类型

        

    如果希望从外设读取数据或者状态,则在处理器发送完读取命令后还需要发送 BTA 命令,非读取命令在外设接收成功后会返回 trigger message 0x84

    5、外设到处理器数据包类型

        

    返回的数据一般分为 4 个类型:

    * Tearing Effect (TE):trigger message (BAh)
    * Acknowledge:trigger message (84h)
    * Acknowledge and Error Report:short packet (Data Type is 02h)
    * Response to Read Request:short packet or long packet
    Generic Read Response、DCS Read Response(1byte, 2byte, multi byte)

    读取数据返回值解析示例如下:

    [cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
    1. - Acknowledge and Error report (if error occurs)   
    2. Byte 0 is 0x87 (escape mode low power data transmission header)   
    3. Byte 1 is 0x02 (Data type, 8.10 of “MIPI Alliance Specification for DSI”)   
    4. Byte 3,2 are error report bits[15:0] (8.9.5 of “MIPI Alliance Specification for DSI”)   
    5. Byte 4 is the ECC, calculated from byte 1,2,3   
    6.    
    7. - Generic Short READ response   
    8. Byte 0 is 0x87 (escape mode low power data transmission header)   
    9. Byte 1 is 0x11 or 0x12 (8.10 of “MIPI Alliance Specification for DSI”)   
    10. Byte 2,3 are the read data. If only 1 byte is returned, byte 3 will be 0x00   
    11. Byte 4 is the ECC, calculated from byte 1,2,3   
    12.    
    13. - Long READ packet response   
    14. Byte 0 is 0x87 (escape mode low power data transmission header)   
    15. Byte 1 is 0x1A (8.10 of “MIPI Alliance Specification for DSI”)   
    16. Byte 3,2 are the word count N (N=0 to 65535)   
    17. Byte 4 is the ECC, calculated from byte 1,2,3   
    18. Byte 5 to byte 5+N-1 are the N-byte read data   
    19. Byte 5+N+1, byte 5+N are the checksum, calculated on byte 5 to byte 5+N-1. If   
    20. checksum is not calculated by peripheral, this field is 0x0000.   
    6、Video 模式的 3 种数据格式

        

    * Non-Burst Mode with Sync Pulses
    * Non-Burst Mode with Sync Events
    * Burst Mode


    * 调试记录

            LCD半边闪屏问题,原厂给的信息:分析了系統板送出的 video mode timing,資訊摘要如下


            HSCLK: 160MHz 
            Per lane bit-rate: 320Mbps (UI=3.125ns) 
            HS SoT HS-prepare + HS-zero 約 155ns   

            由上述的 timing 懷疑與現象是因為 IC HS data settle timing 搭配不當所導致
            看来是我们输出的mipi信号 HS-prepare + HS-zero 比 LCD 默认设置短引起的。还有随机整屏闪动的问题通过调节 VFP 和 VBP 的值调到了理想状态。另外 LCD 的 VCC 在使用 mos 管控制后休眠后会有 2.0V 的悬浮电压,通过 RC 电路将电压放掉,将 C78 换成了 10K 电阻。
            LCD电路上有几个比较重要的电压: AVDD、VCC、VGH、VGL、HAVDD、VCOM(由AVDD通过电阻分压得到)

    * 唤醒慢的问题

    在最初调试的几款 LCD 里面初始化 cmd 都比较少,后来在调试一款 IPS 屏的时候发现唤醒需要 3 秒左右,这款 LCD 初始化 cmd 有100多条,之前在调试一款 LCD 的时候每条 cmd 发送之后需要 delay 10ms 再发下一条 cmd,所以在这款 LCD 这里不能有 delay,并且经过调试在确保发送成功的情况下将 LP 的传输速度提高了 3 倍(这里需要读取每条 cmd 的返回值 0x84 确认命令是否发送成功),优化后唤醒时间不到 1 秒。

    * LCD 参数理解更正

    才发现之前一直对 LCD 的几个参数 HFP、HBP、VFP、VBP 理解有错误,正确的应该是以同步信号(HSYNC、VSYNC)为基准,在同步信号之前的称为 Front,在同步信号之后的称为 Back,而不是之前理解的以有效像素为基准。

    * LCD 显示呈锯齿状问题

    这两天(12.11)还调试了一款 540 x 960 分辨率的 mipi LCD,在开始的时候一直点不亮,和供应商确认了好久无意间才发现是他们给的初始化代码是错的,使用正确的初始化代码就能点亮了,不过显示出来的图像却是呈锯齿状的,即没有对齐。之前在别的平台也遇到过类似问题,也就是分辨率不是 16 的整数倍,LCD controller 在取数据的时候会对不齐。边研究 Datasheet 边和 ASIC 同事讨论,后来确定了一个方案:即在 DSI、LCD 寄存器里面设置分辨率为 540 x 960 以让 LCD 正确识别信号,但 framebuffer 需要设置为 544 x 960 以对齐,并且设置 Source pitch 寄存器为 544,这样显示就正常了,相当于 framebuffer 里每一行的最后 4 个 pixel 会被 LCD controller 丢掉。

    今天(12.12)在和 ASIC 同事的讨论下更正了之前的理解:LCD controller 在计算取数据的时候,地址是根据(x,y)坐标来算的,差不多是address = y * pitch + x + base,pitch 就是一行 pixel 在内存里的大小,这个至少是要对齐到 8byte, 因为 bus 宽度是 8byte,如 Data sheet 中的描述 ”Source pitch for RGB channel, QWORD aligned if linear mode“。之前计算 pitch 值的公式为:xres / 8 * bits_per_pixel / 8,如果 xres = 540,bits_per_pixel = 32,计算的结果因为取整的原因为 0x10c,实际上正确的值应该是 0x10e,所以需要将公式改为:xres * (bits_per_pixel / 8) / 8,即在每个像素占 4byte 的情况下只要 xres 为偶数就可以满足对齐的要求,而不用改为 544。


    展开全文
  • 今天学习了android蓝牙方面的基础知识,包含了打开和关闭蓝牙的操作,以及两部手机之间通过蓝牙实现的数据传输。下面看代码: 首先,需要在清单文件里添加蓝牙操作的权限: 打开蓝牙的两种方式: 第一种:...

    今天学习了android蓝牙方面的基础知识,包含了打开和关闭蓝牙的操作,以及两部手机之间通过蓝牙实现的数据传输。下面看代码:

    首先,需要在清单文件里添加蓝牙操作的权限:

    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

    打开蓝牙的两种方式:

    第一种:Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

    startActivityForResult(intent,1);

    这种方式会提示用户是否打开蓝牙

    第二种:bluetoothAdapter.enable();

    这种方式系统直接打开蓝牙

    关闭蓝牙的操作:bluetoothAdapter.disable();

     

    搜索附近蓝牙的基本操作:

    1.BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//得到默认的蓝牙适配器

     

    2.if (bluetoothAdapter.isDiscovering()) {//如果正好在搜索,则先取消搜索

    bluetoothAdapter.cancelDiscovery();

    }

    bluetoothAdapter.startDiscovery();

    第二部在搜索的时候,会发出一个广播BluetoothDevice.ACTION_FOUND

    3.创建并注册BroadcastReceiver并在onReceive方法中进行操作,关键代码如下:

      @Override
    		public void onReceive(Context arg0, Intent arg1) {
    			// TODO Auto-generated method stub
    			String action = arg1.getAction();
    			//获得已经搜索到的蓝牙设备
    			if (BluetoothDevice.ACTION_FOUND.equals(action)) {
    				BluetoothDevice device = arg1.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
    				//搜索到的设备不是已经绑定的设备
    				if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
    					//将搜索到的新蓝牙设备和名称显示到textview中
    					show.append(device.getName()+":"+device.getAddress()+"\n");
    					
    				}
    			}else if (bluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {//说明搜索已经完成
    				setProgressBarIndeterminateVisibility(false);
    				setTitle("搜索蓝牙设备");
    				
    			}
    		}


    2.两个蓝牙设备之间的通信

    在清单文件里添加蓝牙操作的权限:

    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

    A.在两个手机上蓝牙之间传输数据是通过BluetoothSocketBluetoothServerSocket来实现的

    B.创建BluetoothSocket和BluetoothServerSocket的方式如下:

    clientSocket = device

    .createRfcommSocketToServiceRecord(MY_UUID);

    serverSocket = bluetoothAdapter

    .listenUsingRfcommWithServiceRecord(NAME, MY_UUID);

    这里需要注意的是:

     UUID MY_UUID = UUID

    .fromString("5dd231bf-d217-4e85-a26c-5e5cfda9aa0c");

    5dd231bf-d217-4e85-a26c-5e5cfda9aa0c是有系统提供的UUID.randomUUID().toString();生成的可以用于蓝牙设备之间的传输身份证,这个是唯一的

    NAME是一个字符串,是我们随便给的

    B.创建接受数据的线程类:

    private class AcceptThread extends Thread{
    		private BluetoothServerSocket serverSocket;
    		private BluetoothSocket socket;
    		private InputStream is;
    		private OutputStream os;
    		public AcceptThread() {
    			//创建BluetoothServerSocket对象
    			try {
    				serverSocket = bluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord("name",UUID.fromString("5dd231bf-d217-4e85-a26c-5e5cfda9aa0c"));
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		@Override
    		public void run() {
    			// TODO Auto-generated method stub
    			//等待接受蓝牙客户端的请求
    			try {
    				socket = serverSocket.accept();
    				is = socket.getInputStream();
    				os = socket.getOutputStream();
    				while(true){
    					byte[] buffer = new byte[128];
    					int count = is.read(buffer);
    					Message message = new Message();
    					message.obj = new String(buffer,0, count, "utf-8");
    					handler.sendMessage(message);
    				}
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    
    		}
    
    }
    

    得到已经绑定的蓝牙设备并用list显示出来

    luetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//得到默认的蓝牙适配器
    C.Set<BluetoothDevice>paireDevices = bluetoothAdapter.getBondedDevices();//得到已经绑定的蓝牙设备
    if (paireDevices.size() > 0) {//若存在
    	String []data = new String[paireDevices.size()];
    	for (BluetoothDevice bluetoothDevice : paireDevices) {
    		data[count++] = bluetoothDevice.getName()+":"+bluetoothDevice.getAddress();//得到绑定蓝牙设备的名称和地址
    	}
    	adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_expandable_list_item_1,data);
    			
    list.setAdapter(adapter);


    list的每一个列表项绑定监听事件:

    list.setOnItemClickListener(new OnItemClickListener() {
    
    			@Override
    			public void onItemClick(AdapterView<?> parent, View view, int position,
    					long id) {
    				// TODO Auto-generated method stub
    				String s = adapter.getItem(position);
    				//获得要连接的蓝牙设备的地址
    				String address = s.substring(s.indexOf(":")+1).trim();
    				if (null == device) {
    					//获得蓝牙设备,相当于网路客户端制定的socketip地址
    					device = bluetoothAdapter.getRemoteDevice(address);
    				}
    				if (null == clientSocket) {
    					try {
    						clientSocket = device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("5dd231bf-d217-4e85-a26c-5e5cfda9aa0c"));
    						//开始连接蓝牙设备
    						clientSocket.connect();
    						os = clientSocket.getOutputStream();
    					} catch (IOException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    
    					if (null != os) {
    						//向服务器端发送一个字符串
    						try {
    							os.write("这是另一台手机发送过来的数据".getBytes("utf-8"));
    							Toast.makeText(MainActivity.this,"发送成功",1000);
    						} catch (Exception e) {
    							// TODO Auto-generated catch block
    							Toast.makeText(MainActivity.this,"发送失败",1000);
    							e.printStackTrace();
    						} 
    					}
    				}
          }
    } );

    分别将该应用部署到两部手机,实现蓝牙通信.注意目前这种方式只支持简单的数据传输,如果需要出书二进制文件,比如音频,还是不可以的。

    源码下载










    展开全文
  • 通过deviceID,使用adb命令,就可以和指定的手机进行数据传输。 代码如下: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.In

    当使用数据线把手机插入到电脑以后,可以获取到手机的设备标识,即deviceId。通过deviceID,使用adb命令,就可以和指定的手机进行数据的传输。

    使用adb命令可以使用电脑往指定的手机上push数据,也可以pull指定手机上的数据。

    代码如下:

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.util.ArrayList;

    import java.util.List;

    import com.szh.model.Device;

    public class CopyFile {


        public static void main(String[] args) {

            // 使用adb把手机端文件拷贝到电脑以及把电脑文件拷贝到手机

            // 首先获取设备信息

            List<Device> devices = findDevices();

            // 遍历设备的id

            for (int i = 0; i < devices.size(); i++) {

                // 获取id

                String tempId = devices.get(i).getDeviceId();

                // 使用adb往手机端推送文件

                try {

                    // 电脑从手机上拉文件

                    Runtime.getRuntime() .exec("adb -s " + tempId + " pull sdcard/ucliulanqi.apk D:\\");

                    System.out.println("adb -s " + tempId + " pull sdcard/hello.txt D:\\");

                    // 从电脑上推送文件到手机

                    Runtime.getRuntime().exec( "adb -s " + tempId + " push D:\\demo\\hello.txt sdcard/");

                    System.out.println("adb -s " + tempId + " push D:\\demo\\hello.txt sdcard/");

                    // 把整个文件夹拉到PC端

                    Runtime.getRuntime().exec("adb pull sdcard/temp D:\\");

                    System.out.print("adb pull sdcard/temp D:\\");

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

        }


        // 发现手机里的设备

        public static List<Device> findDevices() {

            List<Device> devices = new ArrayList<Device>();

            String str = null;

            int port = 15000;

            Process process = null;

            Device device = null;

            List<String> lines = new ArrayList<String>();

            try {

                process = Runtime.getRuntime().exec("E:/android/sdks/platform-tools/adb.exe devices");

                InputStream in = process.getInputStream();

                BufferedReader read = new BufferedReader(new InputStreamReader(in));

                while ((str = read.readLine()) != null) {

                    lines.add(str);

                    System.out.println(str);

                }

                for (int i = 1; i < lines.size() - 1; i++) {

                    str = lines.get(i);

                    String[] deviceStr = str.split("\t");

                    if ("device".equals(deviceStr[1])) {

                        device = new Device();

                        device.setDeviceId(deviceStr[0]);

                        device.setState(deviceStr[1]);

                        // 目前先指定port;

                        device.setPort(port);

                        port++;

                        devices.add(device);

                    }

                }

            } catch (IOException e) {

                e.printStackTrace();

            }

            return devices;

        }

    }


    ======================================

    model如下:

    package com.szh.model;


    public class Device {

        String deviceId;

        String state;

        int port;

        public String getDeviceId() {

            return deviceId;

        }

        public void setDeviceId(String deviceId) {

            this.deviceId = deviceId;

        }

        public String getState() {

            return state;

        }

        public void setState(String state) {

            this.state = state;

        }

        public int getPort() {

            return port;

        }

        public void setPort(int port) {

            this.port = port;

        }
    }

    有一点需要注意的是

    1:通过adb获取手机设备id的时候,如果你的adb没有单独配置环境变量,通过"adb devices"这种操作是获取不到设备id的。我当时查资料的时候,看到网上有些使用adb devices获取的,但是因为我没有单独配置adb,所以这种方法并不好使。后来我通过绝对路径才获取成功。

    展开全文
  • 手机客户端数据传输加密设计

    万次阅读 2012-11-25 19:06:18
    在返回数据中用请求密钥及响应密钥返回在业务数据的加密中就可以使用对称密钥加密4.在业务数据请求是用请求密钥对称加密5.在业务数据响应时用响应密钥对称加密 非对称加密可以使用RSA,对称加密可使用DES 本文章...

    登陆的时候进行一次双向非对称协议

    1.客户端先发起非对称请求

    2.服务端返回一次非对称响应

    3.在返回数据中用请求密钥及响应密钥返回

    在业务数据的加密中就可以使用对称密钥加密

    4.在业务数据请求是用请求密钥对称加密

    5.在业务数据响应时用响应密钥对称加密

     

    非对称加密可以使用RSA,对称加密可使用DES

     

     

    本文章属于原创,转载请注明出处。http://blog.csdn.net/lastsweetop/

    展开全文
  • 手机的OTG功能,相信大家都很熟悉,也很实用,可以让手机跟U盘,直播盒子等USB外设进行数据交互。但是,传统的OTG功能在使用的时候,存在一个现象,无法让手机一边...下面就大家带来Type C手机边充电边传输数据(OTG
  • Android手机通过wifi进行数据传输

    千次阅读 2018-11-07 21:22:35
    Android手机通过wifi进行数据传输
  • 如何实现电脑端和手机数据传输与共享 91卫图助手既有电脑版、也有手机端,可以借助微信、QQ等常用的工具,实现手机端和电脑端图层数据传输与共享。 工具/原料 91卫图助手下载器 91卫图助手下载地址:...
  • 传感器采集的数据传输到服务器然后传输到安卓手机的APP 大题需要那几个步骤 ?? 万分感谢
  • 手机利用蓝牙搜索配对上蓝牙设备,连接上后蓝牙设备给手机传输数据,此蓝牙设备不是BLE设备,并且通信过程中利用BluetoothSocket进行通信,但是获取不到数据,有可能设备传输的数据加密了还是必须知道数据格式?...
  • 微信小程序调用Android手机蓝牙BLE传输数据

    万次阅读 热门讨论 2018-04-16 19:28:13
    最近做的微信小程序要调用手机自带的4.0蓝牙发送、接收数据4.0蓝牙又叫BLE,整理了下,蓝牙连接要经过如下步骤:初始化蓝牙检查蓝牙是否初始化成功开始搜索附近蓝牙设备显示扫描得到的蓝牙选择连接特定MAC地址的蓝牙...
  • Android蓝牙语音传输数据传输

    万次阅读 热门讨论 2016-11-18 18:45:05
    需求:开发一个app将手机麦克风的语音数据实时发送蓝牙音箱设备(耳机也可以),实现扩音的目的。也有单独数据传输的部分。 在网上找了很多,没有找到一个合适的demo,弄了几天终于弄出来了!下面把这个过程分享...
  • Android手机通过wifi进行数据传输(四)2014-05-08 10:30 阅读(5226) 评论(14) Android手机通过wifi进行数据传输(三)2014-05-08 10:29 阅读(10081) 评论(3) Android手机通过wifi进行数据传输(二)2014-05-...
  • 今天就大家分享一下手机便携式wifi热点的使用方法,就算不使用手机的网络,当忘记带数据线时也可以通过手机的wifi与电脑(特别是XP系统,因为该系统不能虚拟wifi,而Windows7可以)组成无线局域网,进行局域网的...
  • android 蓝牙4.0 分包传输数据 问题

    千次阅读 2016-07-14 18:57:03
    目前发现在5.1的系统上,蓝牙4.0每次发送256byte数据可行,但是在4.4的系统上每次传输数据最多为20byte。 而且BLE是间隔性通信的,每个一定时间产生链接事件,并进行数据交互。由于每次发送20byte数据,传输很快,...
  • 很多时候我们需要向模拟器中导入数据,这里介绍两种方法: 1、使用Device File Exploer。本方法需要在Android Studio中才能实现。首先打开android sdudio,然后打开你的模拟器或者连接你的手机,如果连接没有问题的...
  • Android手机和电脑间基于wifi进行数据传输,从技术上讲,主要有两种方案: 一种是通过ftp协议实现,Android手机作为数据传输过程中的ftp服务器; 一种是通过http协议实现。Android手机作为数据传输过程中的http...
  • 想做一个APP,通过蓝牙来控制飞行器的起飞降落,这部分是怎么实现的,Java程序该怎么写啊
  • Android手机通过wifi进行数据传输(二)

    万次阅读 热门讨论 2014-05-08 10:27:23
    上文接Android手机通过wifi进行数据传输(一) 以下是源码文件 原文件Constant.java package edu.cdut.robin; public class Constant { public final static String END="end"; public final static String ...
  • Android实现Wifi数据传输

    热门讨论 2015-03-06 13:48:19
    两部手机连接wifi后,通过socket进行数据传输 说明: 测试需要两部安卓手机A,B。A手机创建WIFI热点作为服务器,B手机连接A手机WIFI热点,作为客户端。 //A手机服务器 接收数据步骤:1点击创建Wifi热点2点击"turn_on_...
  • 工作时间不是很长,如以下观点中出现不对的地方欢迎指正 目前在Android领域蓝牙有2.0和4.0,这篇文章只写一下2.0的 以后我会继续补充4.0的 2.0和4.0的区别还是很大...这就完成了一个简单的蓝牙设备的数据传输
  • 小米手机打开开发者模式,开启USB的MTP媒体传输协议依旧不能和MAC链接。 小米官方论坛有人讨论过这个问题,说是没有mac的驱动,需要自己找。 解决: 有人推荐锤子的SmartFinder,前往官网下载,没有SmartFinder,有...
  • GPRS 数据传输

    千次阅读 2015-12-29 16:39:18
    GPRS 数据传输应用 设置 PPP 场景:AT+CIPCSMP=1,”CMNET” 连接服务器:AT+CIPSTART="TCP",218.246.31.188,2020 OK CONNECT OK 查询 PPP 状态:AT+CIPSTATUS 8 OK 发送信息到网络服务器:AT+...
  • Android手机通过wifi进行数据传输(一)

    万次阅读 热门讨论 2014-05-08 10:22:55
    在Android手机上可以通过在收方开启一个wifi热点,然后再发送方连接这个wifi热点。这样他们就在一个局域网,然后通过socket进行通信。 本文的demo程序写得比较简单。 对于收方,首先点击“创建wifi热点”按钮,开启...
  • iOS蓝牙开发之数据传输精华篇

    千次阅读 2019-01-02 17:45:45
       最近对蓝牙传输比较感兴趣,所以抽时间研究了一下。由于身边没有合适的外部设备,我这边就一台手机作为中心设备,一台手机作为从设备来进行调试...  我今天主要和大家分享的是蓝牙传输时大量数据传输方案。...
  • 市面上利用WIFI在手机和电脑传文件的软件,总是要你去下载一个非常变态的电脑客户端。那种客户端在你电脑...其实利用无线网络来和安卓手机传输文件,根本不需要在电脑上装客户端。 推荐一款软件:http://www.bri

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 147,225
精华内容 58,890
关键字:

如何给新手机传输数据