当前位置:  编程技术>移动开发
本页文章导读:
    ▪怎么获取本机MAC地址        如何获取本机MAC地址 struct ifreq ifr; int fd; fd=socket(AF_INET,SOCK_DGRAM,0); strcpy(ifr.ifr_name,"eth0"); ifr.ifr_addr.sa_family=AF_INET; ioctl(fd,SIOCGIFHWADDR,&ifr); puts(ifr.ifr_hwaddr.sa_data); ......
    ▪ 将开发人员证件转换为 P12 文件        将开发人员证书转换为 P12 文件 要使用 Flash Professional CS5 开发 iPhone 应用程序,您必须使用 P12 证书文件。基于从 Apple 收到的 Apple iPhone 开发人员证书文件生成此证书。 在 Mac OS 上将 iPhone 开.........
    ▪ AutoCompleteTextView跟自定义的CursorAdapter       AutoCompleteTextView和自定义的CursorAdapter       AutoCompleteTextView配合自定义的CursorAdapter(setAdapter()),可以帮助我们完成查找的功能.关键就在于类CursorAdapter.       CursorAdapter是继承自BaseAdapter.........

[1]怎么获取本机MAC地址
    来源: 互联网  发布时间: 2014-02-18
如何获取本机MAC地址
struct ifreq ifr; 
int fd; 
fd=socket(AF_INET,SOCK_DGRAM,0); 
strcpy(ifr.ifr_name,"eth0"); 
ifr.ifr_addr.sa_family=AF_INET; 
ioctl(fd,SIOCGIFHWADDR,&ifr); 
puts(ifr.ifr_hwaddr.sa_data); 

    
[2] 将开发人员证件转换为 P12 文件
    来源: 互联网  发布时间: 2014-02-18
将开发人员证书转换为 P12 文件

要使用 Flash Professional CS5 开发 iPhone 应用程序,您必须使用 P12 证书文件。基于从 Apple 收到的 Apple iPhone 开发人员证书文件生成此证书。

在 Mac OS 上将 iPhone 开发人员证书转换为 P12 文件

从 Apple 下载 Apple iPhone 证书后,将其导出为 P12 证书格式。在 Mac® OS 上执行以下操作:

  • 打开钥匙串访问应用程序(位于应用程序/实用工具文件夹中)。

  • 如果尚未将该证书添加到钥匙串,请选择“文件”>“导入”。然后浏览到您从 Apple 获取的证书文件(.cer 文件)。

  • 在钥匙串访问中选择密钥类别。

  • 选择与 iPhone 开发证书相关联的私钥。

    该私钥由 iPhone 开发人员识别:与之配对的<名字><姓氏>公共证书。

  • 选择“文件”>“导出项目”。

  • 以个人信息交换 (.p12) 文件格式保存您的密钥。

  • 系统将提示您创建一个尝试在其他计算机上导入此密钥时需要使用的密码。

  • 在 Windows 上将 Apple 开发人员证书转换为 P12 文件

    要使用 Flash CS5 开发 iPhone 应用程序,则必须使用 P12 证书文件。基于从 Apple 收到的 Apple iPhone 开发人员证书文件生成此证书。

  • 将从 Apple 收到的开发人员证书文件转换成 PEM 证书文件。从 OpenSSL bin 目录运行以下命令行语句:

    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
  • 如果您使用的是 Mac 计算机上钥匙串中的私钥,则将其转换成 PEM 密钥:

    openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
  • 现在,您可以基于密钥和 PEM 版本的 iPhone 开发人员证书生成有效的 P12 文件:

    openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

    如果您使用的是 Mac OS 钥匙串中的密钥,则使用上一步骤中生成的 PEM 版本。否则,请使用以前生成的 OpenSSL 密钥(位于 Windows 上)。

  • 1 楼 androidzjb 2012-06-09  
    谢谢分享

        
    [3] AutoCompleteTextView跟自定义的CursorAdapter
        来源: 互联网  发布时间: 2014-02-18
    AutoCompleteTextView和自定义的CursorAdapter

          AutoCompleteTextView配合自定义的CursorAdapter(setAdapter()),可以帮助我们完成查找的功能.关键就在于类CursorAdapter.

          CursorAdapter是继承自BaseAdapter并且实现了接口Filterable 。所以在我们自己定义的CursorAdapter子类中就不需要在继承Filterable,但对于JRE是1.5以下的虚拟机来说。是要重写方法getFilter()的;

          要继承CursorAdapter类。必须实现的方法有:

           1)首先执行的是public Cursor runQueryOnBackgroundThread(CharSequence constraint),constraint就是我们输入的要查询的关键字;此方法产生查询到的所有数据的cursor.并将其返回给下一个函数;

           2)接下来执行方法public View newView(Context context, Cursor cursor, ViewGroup parent),cursor就是有第一种方法产生的.这个方法主要是产生一个个具体的承载cursor指向的数据的view类,最常见的是TextView;

           3)接下来执行方法public void bindView(View view, Context context, Cursor cursor) 。view就是第2步产生的。cursor是第一步产生的。显而易见,就是将两者进行绑定。

            但要注意的是,2和3是反复交替执行的。产生多少条数据(cursor.getcount())就执行多少轮。还有一点容易忽视的就是在xml文件中定义AutoCompleteTextView片段中一定要加入以下代码android:completionThreshold="1",他表示你最少要输入关键字的个数;

            下面的代码以查询联系人为例:

    package com.zymic.home;
    
    import android.app.Activity;
    import android.content.ContentResolver;
    import android.content.Context;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.provider.Contacts;
    import android.provider.Contacts.People;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AutoCompleteTextView;
    import android.widget.CursorAdapter;
    import android.widget.Filterable;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class AutoTextViewEx extends Activity {
        private AutoCompleteTextView autoTextView;
        private Cursor cursor;
        //
        private static final String[] PEOPLE_PROJECTION = new String[] {
            Contacts.People._ID,
            Contacts.People.PRIMARY_PHONE_ID,
            Contacts.People.TYPE,
            Contacts.People.NUMBER,
            Contacts.People.LABEL,
            Contacts.People.NAME,
        };
        //
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //
            autoTextView=(AutoCompleteTextView)findViewById(R.id.autotextview);
            cursor=getApplicationContext().getContentResolver().query(People.CONTENT_URI, PEOPLE_PROJECTION, null, null, null);
            MyAdapter adapter=new MyAdapter(this,cursor);
            autoTextView.setAdapter(adapter);
        }
        //
        public class MyAdapter extends CursorAdapter implements Filterable{
        	Cursor cursor;
    		public MyAdapter(Context context, Cursor c) {
    			super(context, c);
    			// TODO Auto-generated constructor stub
    		}
    
    		@Override
    		public void bindView(View view, Context context, Cursor cursor) {
    			((TextView)view).setText(cursor.getString(5));
    			Toast.makeText(getApplicationContext(), "bindView", Toast.LENGTH_SHORT).show();
    		}
    
    		@Override
    		public View newView(Context context, Cursor cursor, ViewGroup parent) {
    			LayoutInflater inflater = (LayoutInflater)context.getSystemService (
    		      Context.LAYOUT_INFLATER_SERVICE);
    			TextView view=(TextView) inflater.inflate(android.R.layout.simple_dropdown_item_1line, null);
    			//view.setText(cursor.getString(5));
    			Toast.makeText(getApplicationContext(), "newView", Toast.LENGTH_SHORT).show();
    			return view;
    		}
    
    		@Override
    		public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
    			//UPPER(Contacts.People.NAME)
    			String where="UPPER("+Contacts.People.NAME+") GLOB ?";
    			String[]to=new String[]{"*"+constraint.toString().toUpperCase()+"*"};
    			cursor=getApplicationContext().getContentResolver().query(People.CONTENT_URI, PEOPLE_PROJECTION,
    					where, to, null);
    			//System.out.println(cursor);
    			Toast.makeText(getApplicationContext(), "runQuery", Toast.LENGTH_SHORT).show();
    			return cursor;
    		}
        	
        	
        }
    }
     


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3