调用迅雷SDK 的问题 希望大佬出手救命

别低头 王冠会掉 2020-02-29 06:16:36

XL.DownTaskParam p = new XL.DownTaskParam()
{
szTaskUrl = URL,
szFilename = “1.rar”,
szSavePath = Application.StartupPath
};
a = XL.XL_CreateTask(p);
var startSuccess = XL.XL_StartTask(a);

问题出在下载大文件的时候 下载几十MB的时候下载就会0KB 10-20秒左右 然后在接着下载 用别人写的工具同样是迅雷SDK 下载同样的文件 就没有这个情况发生 下载0KB期间 硬盘读写很高


只有50分 谢谢大佬
...全文
1968 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我的资源是直连的 用不了BT啊 还是谢谢您
desperaso 2020-03-01
  • 打赏
  • 举报
回复
不用迅雷的行不,一样下载、bt。Mono开源的,有demo
https://pan.baidu.com/s/186j6ijs82j0mcb7rKF_P1g
提取码:9qf2
  • 打赏
  • 举报
回复
刚才在《迅雷推出新的测试版,不是浏览器了。。。》的帖子里看到不少人喷“ XLServicePlatform ”是个流氓服务。其实这个服务非常重要!只怪我们之前没有解释清楚。 “ XLServicePlatform ”服务具有以下几个功能: 1、在 Windows Vista 引入的 UAC 增加了一种磁盘安全机制。在迅雷进程没有管理员权限的情况下,创建固实文件申请磁盘空间后,迅雷一旦开始写入数据,系统就会将文件所在区块的所有数据写成 0 (相当于“初始化”)。以防没有权限的应用程序访问到磁盘上被标记为删除但尚未擦除的旧数据。 完成初始化的速度取决于磁盘本身的写入性能,在此期间磁盘的 IO 性能几乎全部被占用。因此会造成其它磁盘读写请求被延迟。于是会看到许多应用程序停止响应。而下载的文件越大,完成初始化需要的时间越长。直至文件所在区块全部初始化完成,迅雷才可以写入下载的数据。( uTorrent 在勾选了“提前申请磁盘空间”后,如果也没有管理员权限,那么下载大文件也会出现同样的情况。) 为了避免这个问题,迅雷利用系统服务具有管理员权限这一特性,在迅雷下载大于 100MB 的文件时,由“ XLServicePlatform ”服务来申请磁盘空间,这时系统就不会花时间提前将文件所在区块初始化,迅雷就可以直接写入数据了。 2、目前最新版本的迅雷客户端都增加了“驱动层浏览器支持”功能,用于在不安装任何浏览器扩展的条件下,支持“ Edge、Chrome、Firefox ”等浏览器。该功能依赖“ XLServicePlatform ”服务进行初始化。 3、迅雷下载 JS-SDK 需要通过“ XLServicePlatform ”服务跟网页中的 JS 进行交互,比如判断是否安装迅雷,以及传递下载链接等信息,如果这个服务被停止,当你点击网页中使用迅雷下载 JS-SDK 实现的下载按钮时,会认为你没有安装迅雷,从而提示你安装迅雷。 鉴于以上功能对于大多数用户的下载体验都十分重要,所以我们没有提供关闭此服务的选项。如果你用不着这些功能,是可以手动停止服务的。 看了 上面的文章我 抱着试试的态度 项目里设置了管理员模式 问题没有了
  • 打赏
  • 举报
回复
有点难
  • 打赏
  • 举报
回复
using System;
using System.Runtime.InteropServices;

public static class XL
{
    [DllImport("xldl.dll", CharSet = CharSet.Unicode)]
    public static extern  bool XL_Init();

    [DllImport("xldl.dll", CharSet = CharSet.Unicode)]
    public static extern  bool XL_UnInit();

    [DllImport("xldl.dll", CallingConvention  = CallingConvention.Cdecl)]
    public static extern  IntPtr XL_CreateTask([In()]DownTaskParam stParam);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  bool XL_StartTask(IntPtr hTask);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  bool XL_StopTask(IntPtr hTask);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  object XL_SetSpeedLimit(Int32 nKBps);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern int XL_CreateTaskByThunder(string pszUrl, string pszFileName, string pszReferUrl, string pszCharSet, string pszCookie);
    //LONG XL_CreateTaskByThunder(wchar_t *pszUrl, wchar_t *pszFileName, wchar_t *pszReferUrl, wchar_t *pszCharSet, wchar_t *pszCookie)
    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  object XL_SetUploadSpeedLimit(Int32 nTcpKBps, Int32 nOtherKBps);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  object XL_SetProxy(DOWN_PROXY_INFO stProxyInfo);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  object XL_DelTempFile(DownTaskParam stParam);
 
    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  bool XL_DeleteTask(IntPtr hTask);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  bool XL_GetBtDataFileList(string szFilePath, string szSeedFileFullPath);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  bool XL_SetUserAgent(string pszUserAgent);

    [DllImport("xldl.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern  bool XL_GetFileSizeWithUrl(string lpURL, Int64 iFileSize);

    [DllImportAttribute("xldl.dll", EntryPoint = "XL_QueryTaskInfoEx", CallingConvention = CallingConvention.Cdecl)]
    [return: MarshalAsAttribute(UnmanagedType.Bool)]
    public static extern  bool XL_QueryTaskInfoEx(IntPtr hTask, [Out()]DownTaskInfo stTaskInfo);

    [DllImportAttribute("xldl.dll", EntryPoint = "XL_QueryTaskInfoEx", CallingConvention = CallingConvention.Cdecl)]
    public static extern  IntPtr XL_CreateBTTask(DownBTTaskParam stParam);

    [DllImportAttribute("xldl.dll", EntryPoint = "XL_QueryTaskInfoEx", CallingConvention = CallingConvention.Cdecl)]
    public static extern  long XL_QueryBTFileInfo(IntPtr hTask, UIntPtr dwFileIndex, ulong ullFileSize, ulong ullCompleteSize, UIntPtr dwStatus);

    [DllImportAttribute("xldl.dll", EntryPoint = "XL_QueryTaskInfoEx", CallingConvention = CallingConvention.Cdecl)]
    public static extern  long XL_QueryBTFileInfo(IntPtr hTask, BTTaskInfo pTaskInfo);


    [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
    public class DownTaskParam
    {
        public int nReserved;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 2084)]
        public string szTaskUrl;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 2084)]
        public string szRefUrl;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 4096)]
        public string szCookies;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szFilename;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szReserved0;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szSavePath;
        public IntPtr hReserved;
        public int bReserved = 0;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
        public string szReserved1;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
        public string szReserved2;
        public int IsOnlyOriginal = 0;
        public uint nReserved1 = 5;
        public int DisableAutoRename = 0;
        public int IsResume = 1;
        [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2048, ArraySubType = UnmanagedType.U4)]
        public uint[] reserved;
    }

    [StructLayoutAttribute(LayoutKind.Sequential)]
    public struct BTTaskInfo
    {

        ///LONG->int

        public int lTaskStatus;
        ///DWORD->unsigned int

        public uint dwUsingResCount;
        ///DWORD->unsigned int

        public uint dwSumResCount;
        ///ULONGLONG->unsigned __int64

        public ulong ullRecvBytes;
        ///ULONGLONG->unsigned __int64

        public ulong ullSendBytes;
        ///BOOL->int
        [MarshalAsAttribute(UnmanagedType.Bool)]

        public bool bFileCreated;
        ///DWORD->unsigned int

        public uint dwSeedCount;
        ///DWORD->unsigned int

        public uint dwConnectedBTPeerCount;
        ///DWORD->unsigned int

        public uint dwAllBTPeerCount;
        ///DWORD->unsigned int
        public uint dwHealthyGrade;
    }

    [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public class DownTaskInfo
    {
        public DOWN_TASK_STATUS stat;
        public TASK_ERROR_TYPE fail_code;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szFilename;
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szReserved0;
        public long nTotalSize;
        public long nTotalDownload;
        public float fPercent;
        public int nReserved0;
        public int nSrcTotal;
        public int nSrcUsing;
        public int nReserved1;
        public int nReserved2;

        public int nReserved3;
        ///int

        public int nReserved4;
        ///__int64

        public long nReserved5;
        ///__int64

        public long nDonationP2P;
        ///__int64

        public long nReserved6;
        ///__int64

        public long nDonationOrgin;
        ///__int64

        public long nDonationP2S;
        ///__int64

        public long nReserved7;
        ///__int64

        public long nReserved8;
        ///int

        public int nSpeed;
        ///int

        public int nSpeedP2S;
        ///int

        public int nSpeedP2P;
        ///boolean

        public bool bIsOriginUsable;
        ///float

        public float fHashPercent;
        ///int

        public int IsCreatingFile;
        ///DWORD[64]
        [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.U4)]
        public uint[] reserved;
    }

    public enum DOWN_TASK_STATUS
    {

        ///NOITEM -> 0
        NOITEM = 0,

        TSC_ERROR,

        TSC_PAUSE,

        TSC_DOWNLOAD,

        TSC_COMPLETE,

        TSC_STARTPENDING,

        TSC_STOPPENDING
    }

    public enum TASK_ERROR_TYPE
    {

        ///TASK_ERROR_UNKNOWN -> 0x00
        TASK_ERROR_UNKNOWN = 0,

        ///TASK_ERROR_DISK_CREATE -> 0x01
        TASK_ERROR_DISK_CREATE = 1,

        ///TASK_ERROR_DISK_WRITE -> 0x02
        TASK_ERROR_DISK_WRITE = 2,

        ///TASK_ERROR_DISK_READ -> 0x03
        TASK_ERROR_DISK_READ = 3,

        ///TASK_ERROR_DISK_RENAME -> 0x04
        TASK_ERROR_DISK_RENAME = 4,

        ///TASK_ERROR_DISK_PIECEHASH -> 0x05
        TASK_ERROR_DISK_PIECEHASH = 5,

        ///TASK_ERROR_DISK_FILEHASH -> 0x06
        TASK_ERROR_DISK_FILEHASH = 6,

        ///TASK_ERROR_DISK_DELETE -> 0x07
        TASK_ERROR_DISK_DELETE = 7,

        ///TASK_ERROR_DOWN_INVALID -> 0x10
        TASK_ERROR_DOWN_INVALID = 16,

        ///TASK_ERROR_PROXY_AUTH_TYPE_UNKOWN -> 0x20
        TASK_ERROR_PROXY_AUTH_TYPE_UNKOWN = 32,

        ///TASK_ERROR_PROXY_AUTH_TYPE_FAILED -> 0x21
        TASK_ERROR_PROXY_AUTH_TYPE_FAILED = 33,

        ///TASK_ERROR_HTTPMGR_NOT_IP -> 0x30
        TASK_ERROR_HTTPMGR_NOT_IP = 48,

        ///TASK_ERROR_TIMEOUT -> 0x40
        TASK_ERROR_TIMEOUT = 64,

        ///TASK_ERROR_CANCEL -> 0x41
        TASK_ERROR_CANCEL = 65,

        ///TASK_ERROR_TP_CRASHED -> 0x42
        TASK_ERROR_TP_CRASHED = 66,

        ///TASK_ERROR_ID_INVALID -> 0x43
        TASK_ERROR_ID_INVALID = 67
    }
    public enum DOWN_PROXY_TYPE
    {

        ///PROXY_TYPE_IE -> 0
        PROXY_TYPE_IE = 0,

        ///PROXY_TYPE_HTTP -> 1
        PROXY_TYPE_HTTP = 1,

        ///PROXY_TYPE_SOCK4 -> 2
        PROXY_TYPE_SOCK4 = 2,

        ///PROXY_TYPE_SOCK5 -> 3
        PROXY_TYPE_SOCK5 = 3,

        ///PROXY_TYPE_FTP -> 4
        PROXY_TYPE_FTP = 4,

        ///PROXY_TYPE_UNKOWN -> 255
        PROXY_TYPE_UNKOWN = 255
    }

    public enum DOWN_PROXY_AUTH_TYPE
    {

        ///PROXY_AUTH_NONE -> 0
        PROXY_AUTH_NONE = 0,

        PROXY_AUTH_AUTO,

        PROXY_AUTH_BASE64,

        PROXY_AUTH_NTLM,

        PROXY_AUTH_DEGEST,

        PROXY_AUTH_UNKOWN
    }

    [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public class DOWN_PROXY_INFO
    {

        ///BOOL->int
        [MarshalAsAttribute(UnmanagedType.Bool)]

        public bool bIEProxy;
        ///BOOL->int
        [MarshalAsAttribute(UnmanagedType.Bool)]

        public bool bProxy;
        ///DOWN_PROXY_TYPE

        public DOWN_PROXY_TYPE stPType;
        ///DOWN_PROXY_AUTH_TYPE

        public DOWN_PROXY_AUTH_TYPE stAType;
        ///wchar_t[2048]
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 2048)]

        public string szHost;
        ///INT32->int

        public int nPort;
        ///wchar_t[50]
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 50)]

        public string szUser;
        ///wchar_t[50]
        [MarshalAsAttribut
清晨曦月 2020-03-01
  • 打赏
  • 举报
回复
没玩过这个东西。看一下下载参数设置是不是有下载的缓存大小、缓存写入硬盘设置等等,函数调用是不是有其它重载
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
论坛任务又来30分
Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 手机页面的转换——setContentView的应用 3.9 调用另一个Activity——Intent对象的使用 3.10 不同Activity之间的数据传递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——多按钮的整合应用 3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞——setOnKeyListener事件 4.2 设计具有背景图的按钮——ImageButton的焦点及事件处理 4.3 给耶诞老人的信息——Toast对象的使用 4.4 我同意条款——CheckBox的isChecked属性 4.5 消费券采购列表——多选项CheckBox的应用 4.6 向左或向右——RadioGroup组与onCheckedChanged事件 4.7 专业相框设计——ImageView的堆栈应用 4.8 自定义下拉菜单模式——Spinner与setDropDownViewResource 4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton选择特效 4.13 具自动提示功能的菜单——AutoCompleteTextView与数组 4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——ProgressBar与Handler的整合应用 4.18 动态文字排版——GridView与ArrayAdapter设计 4.19 在Activity里显示列表列表——ListView的布局 4.20 以动态列表配置选项——ListActivity与Menu整合技巧 4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的使用 5.5 自制日历手机数据库——实现SQLiteOpenHelper 5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用ContentResolver 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理器——自定义Adapter对象 5.12 还原手机默认桌面——重写clearWallpaper方法 5.13 置换手机背景图——Gallery与setWallpaper整合实现 5.14 撷取手机现存桌面——getWallpaper与setImageDrawable 5.15 文件资源管理器再进化——JavaI/O修改文件名及删除 5.16 取得目前File与Cache的路径——getCacheDir与getFilesDir 5.17 打开/关闭WiFi服务——WifiManager状态判断 5.18 取得SIM卡内的信息——TelephonyManager的应用 5.19 调用拨号按钮——打电话CALL_BUTTON 5.20 DPAD按键处理——onKeyDown事件与Layout坐标交互 5.21 任务管理器正在运行的程序——RunningTaskInfo 5.22 动态更改屏幕方向——LANDSCAPE与PORTRAIT 5.23 系统设置更改事件——onConfigurationChanged信息处理 5.24 取得电信网络与手机相关信息——TelephonyManager与android.provider.Settings.System的应用 第6章 手机自动服务纪实 6.1 您有一条短信popup提醒——常驻BroadcastReceiver的应用 6.2 手机电池计量还剩多少——使用BroadcastReceiver捕捉Intent.ACTION_BATTERY_CHANGED 6.3 群发拜年短信给联系人——ACTION_PICK与Uri对象 6.4 开始与停止系统服务——Service与Runnable整合并用 6.5 通过短信发送email通知——BroadcastReceiver与Intent整合 6.6 手机拨接状态——PhoneStateListener之onCallStateChanged 6.7 有来电,发送邮件通知——PhoneStateListener与ACTION_SEND 6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的状态——BroadcastReceiver聆听PendingIntent 6.15 后台服务送出广播信息——sendBroadcast与BroadcastReceiver 6.16 开机程序设计——receiver与intent-filter协同作业 6.17 双向短信常驻服务——Service与receiver实例 第7章 娱乐多媒体 7.1 访问Drawable资源的宽高——ContextMenu与Bitmap的应用 7.2 绘制几何图形——使用android.graphics类 7.3 手机屏幕保护程序——FadeIn/FadeOut特效与运行线程 7.4 用手指移动画面里的照片——onTouchEvent事件判断 7.5 加载存储卡的Gallery相簿——FileArrayList 7.6 取得手机内置媒体里的图文件——ACTION_GET_CONTENT取回InputStream 7.7 相片导航向导与设置背景桌面——ImageSwitcher与Gallery 7.8 调整音量大小声——AudioManager控制音量 7.9 播放mp3资源文件——raw文件夹与MediaPlayer的使用 7.10 播放存储卡里的mp3音乐——MediaPlayer.setDataSource 7.11 自制录音/播放录音程序——MediaRecorder与AudioEncoder 7.12 通过收到短信开始秘密录音——MediaRecorder与BroadcastReceiver实例 7.13 内置影片播放器载入3gp电影——VideoViewWidget 7.14 自制3gp影片播放器——MediaPlayer与实现SurfaceView 7.15 相机预览及拍照临时文件——Camera及PictureCallback事件 第8章 当Android与Internet接轨 8.1 HTTPGET/POST传递参数——HTTP连接示范 8.2 在程序里浏览网页——WebView.loadUrl 8.3 嵌入HTML标记的程序——WebView.loadData 8.4 设计前往打开网页功能——Intent与Uri.parse 8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过网络播放MP3——Runnable存储FileOutputStream技巧 8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的应用 8.15 手机下载看3gp影片——Runnable混搭SurfaceView 8.16 访问网站LoginAPI——远程服务器验证程序运行权限 8.17 地震速报!——HttpURLConnection与Service侦测服务 第9章 Google服务与Android混搭 9.1 Google帐号验证Token——AuthSub 9.2 Google搜索——AutoCompleteTextView与GoogleSearchAPI 9.3 前端产生QRCode二维条形码——GoogleChartAPI 9.4 以经纬度查找目的地位置——GeoPoint与MapView的搭配运用 9.5 GPSGoogle地图——LocationListener与MapView实时更新 9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 手机页面的转换——setContentView的应用 3.9 调用另一个Activity——Intent对象的使用 3.10 不同Activity之间的数据传递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——多按钮的整合应用 3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞——setOnKeyListener事件 4.2 设计具有背景图的按钮——ImageButton的焦点及事件处理 4.3 给耶诞老人的信息——Toast对象的使用 4.4 我同意条款——CheckBox的isChecked属性 4.5 消费券采购列表——多选项CheckBox的应用 4.6 向左或向右——RadioGroup组与onCheckedChanged事件 4.7 专业相框设计——ImageView的堆栈应用 4.8 自定义下拉菜单模式——Spinner与setDropDownViewResource 4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton选择特效 4.13 具自动提示功能的菜单——AutoCompleteTextView与数组 4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——ProgressBar与Handler的整合应用 4.18 动态文字排版——GridView与ArrayAdapter设计 4.19 在Activity里显示列表列表——ListView的布局 4.20 以动态列表配置选项——ListActivity与Menu整合技巧 4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧