精华内容
下载资源
问答
  • Frmlogin 登入界面代码部分 Option Explicit Dim miCount As Integer '记录用户名或密码输入错误的次数 Private conn As ADODB.Connection Private rs As ADODB.Recordset Private rsmc As ADODB.Recordset Public ...
  • 现在开发中的功能需要...1、跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)); startActivity(intentPhone); 2)跳转到拨号界面

    现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。
    1、跳转到拨号界面,代码如下:

    1)直接拨打

    Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));

    startActivity(intentPhone);

    2)跳转到拨号界面

    Intent intent = newIntent(Intent.ACTION_DIAL,Uri.parse("tel:" + phoneNumber));

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    startActivity(intent);


    2、跳转到联系人页面,使用一下代码:

    Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));

    startActivity(intentPhone);


    以下内容为转载:


    Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

    现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。

    1.    //安装已经存在的apk

      String filePath="mnt/sdcard/abc.apk";

      Intent intent = new  Intent(Intent.ACTION_VIEW);

      intent.setDataAndType(Uri.parse("file://" + filePath),

              "application/vnd.android.package-archive");

      startActivity(intent);//直接跳到安装页面,但是还要点击按钮确定安装,还是取消安装

      //卸载某应用

      String packageName="org.adw.launcher2"

      Uri packageUri = Uri.parse("package:"+packageName);//包名,指定该应用

      Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageUri);

      startActivity(uninstallIntent);

       

      //查看某一应用程序的信息

       Uri uri=Uri.parse("package:"+packageName);//包名,指定该应用

      Intent intent=new Intent("android.settings.APPLICATION_DETAILS_SETTINGS", uri);

      startActivity(intent); 

      2.浏览网页某一具体网址

       Uri uri = Uri.parse("http://xxxxxxxxxxxxxxxxxxxxxxxx");  

       Intent intent   = new Intent(Intent.ACTION_VIEW,uri);

      //加下面这句话就是启动系统自带的浏览器打开上面的网址,  不加下面一句话,  如果你有多个浏览器,就会弹出让你选择某一浏览器, 然后改浏览器就会打开该网址...............

      intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity"); 

       startActivity(intent);

      //系统  设置  界面

      Intent intent=new Intent();

       intent.setClassName("com.android.settings","com.android.settings.Settings");

      startActivity(intent); 

      //回到桌面吗

      Intent intent = new Intent(Intent.ACTION_MAIN);

      intent.addCategory(Intent.CATEGORY_HOME);

      startActivity(intent);

      //系统   拨号    界面

      Intent intent= new Intent(Intent.ACTION_DIAL);  

      intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity");

      startActivity(intent);     

      //系统 通话记录  界面

      Intent intent =new Intent(); 

      intent.setAction("android.intent.action.CALL_BUTTON"); 

      startActivity(intent);

      //拨号

       Uri uri = Uri.parse("tel:xxxxxx");   

       Intent intent = new Intent(Intent.ACTION_DIAL, uri);      

       startActivity(intent); 

       

      //启动拨号界面,指定了类名  包名   是系统的拨号界面    DialtactsActivity

      Intent intent= new Intent("android.intent.action.DIAL");  

       intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity");

      startActivity(intent); 

      //系统  联系人  界面    PeopleActivity

      Intent intent001 = new Intent();

      intent001.setClassName("com.android.contacts","com.android.contacts.activities.PeopleActivity");

      startActivity(intent001);  

      //系统  搜索   界面    SearchActivity

      Intent intent002=new Intent();

      intent002.setClassName("com.android.quicksearchbox", "com.android.quicksearchbox.SearchActivity");

      startActivity(intent002);

      //启动短信收件箱的界面,指定了包名,类名

       Intent intent4 = new Intent();

      intent4.setClassName("com.android.mms","com.android.mms.ui.ConversationList");

      startActivity(intent4);

       //启动联系人界面,不好

      Intent intent = new Intent();  

       intent.setAction(Intent.ACTION_PICK);  

       intent.setData(Contacts.People.CONTENT_URI);  

       startActivity ( intent );

      插入联系人
      Intent intent=new Intent(Intent.ACTION_EDIT,Uri.parse("content://com.android.contacts/contacts/"+"1"));   
      startActivity(intent); 

      到联系人列表界面
      Intent intent =new Intent(Intent.ACTION_INSERT_OR_EDIT);   
      intent.setType("vnd.android.cursor.item/person");   
      intent.setType("vnd.android.cursor.item/contact");   
      intent.setType("vnd.android.cursor.item/raw_contact");   
      intent.putExtra(android.provider.ContactsContract.Intents.Insert.NAME, name);   
      intent.putExtra(android.provider.ContactsContract.Intents.Insert.COMPANY,company);   
      intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE, tel);   
      intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE_TYPE,3); 
      //启动短信收件箱的界面,指定了包名,类名 
      Intent intent =new Intent(); 
      intent.setClassName("com.android.mms","com.android.mms.ui.ConversationList"); 
      startActivity(intent); 
      //启动编辑短信的界面 
      Intent intent =new Intent(Intent.ACTION_VIEW);   
      intent.setType("vnd.android-dir/mms-sms");    
       // intent.setData(Uri.parse("content://mms-sms/conversations/"));//此为号码 
      startActivity(intent); 

    展开全文
  • 【Dialer】android6.0拨号界面分析<二>

    千次阅读 2016-04-02 13:00:59
    下面简单介绍下拨号界面运用ViewPager+Fragment实现的主界面。ViewPager和Fragment原生拨号应用界面的ViewPager由mViewPager+mViewPagerTabs组成。 mViewPager:ViewPager,用于与容纳fragment,并使用adapter与...

    题记

    大家清明假期快乐!!!!

    下面简单介绍下拨号界面运用ViewPager+Fragment实现的主界面。

    ViewPager和Fragment

    原生拨号应用界面的ViewPager由mViewPager+mViewPagerTabs组成。
    mViewPager:ViewPager,用于与容纳fragment,并使用adapter与数据进行交互。
    mViewPagerTabs:这里我认为是为了更好的定义ViewPager的Title使用。(相当于更加灵活的ViewPager的“头部”)。

    代码如下:
    mViewPager的初始化:

    // 初始化ViewPager
            mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager);
            mViewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager());
            // 设置Adapter,与fragment建立联系
            mViewPager.setAdapter(mViewPagerAdapter);
            mViewPager.setOffscreenPageLimit(TAB_COUNT_WITH_VOICEMAIL - 1);
            mViewPager.setOnPageChangeListener(this);

    ViewPagerAdapter代码如下:

        public class ViewPagerAdapter extends FragmentPagerAdapter {
            public ViewPagerAdapter(FragmentManager fm) {
                super(fm);
            }
    
            @Override
            public long getItemId(int position) {
                return getRtlPosition(position);
            }
    
            @Override
            public Fragment getItem(int position) {
                switch (getRtlPosition(position)) {
                    case TAB_INDEX_SPEED_DIAL:
                        mSpeedDialFragment = new SpeedDialFragment();
                        return mSpeedDialFragment;
                    case TAB_INDEX_RECENTS:
                        mRecentsFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL,
                                MAX_RECENTS_ENTRIES, System.currentTimeMillis() - OLDEST_RECENTS_DATE);
                        return mRecentsFragment;
                    case TAB_INDEX_ALL_CONTACTS:
                        mAllContactsFragment = new AllContactsFragment();
                        return mAllContactsFragment;
                    case TAB_INDEX_VOICEMAIL:
                        mVoicemailFragment = new CallLogFragment(Calls.VOICEMAIL_TYPE);
                        return mVoicemailFragment;
                }
                throw new IllegalStateException("No fragment at position " + position);
            }
            **//初始化Fragment; ViewPager.addNewItem() ->instantiateItem->getItem()**
            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                // On rotation the FragmentManager handles rotation. Therefore getItem() isn't called.
                // Copy the fragments that the FragmentManager finds so that we can store them in
                // instance variables for later.
                final Fragment fragment =
                        (Fragment) super.instantiateItem(container, position);
                if (fragment instanceof SpeedDialFragment) {
                    mSpeedDialFragment = (SpeedDialFragment) fragment;
                } else if (fragment instanceof CallLogFragment && position == TAB_INDEX_RECENTS) {
                    mRecentsFragment = (CallLogFragment) fragment;
                } else if (fragment instanceof AllContactsFragment) {
                    mAllContactsFragment = (AllContactsFragment) fragment;
                } else if (fragment instanceof CallLogFragment && position == TAB_INDEX_VOICEMAIL) {
                    mVoicemailFragment = (CallLogFragment) fragment;
                }
                return fragment;
            }
    
            @Override
            public int getCount() {
                return mHasActiveVoicemailProvider ? TAB_COUNT_WITH_VOICEMAIL : TAB_COUNT_DEFAULT;
            }
    
            @Override
            public CharSequence getPageTitle(int position) {
                return mTabTitles[position];
            }
        }

    在每次 ViewPager 需要一个用以显示的 Object 的时候,函数instantiateItem都会被 ViewPager.addNewItem() 调用;函数instantiateItem中判断一下要生成的 Fragment 是否已经生成过了,如果生成过了,就使用旧的,旧的将被 Fragment.attach();如果没有,就调用 getItem() 生成一个新的,新的对象将被 FragmentTransation.add();

    上述完成了mViewPager+Fragment的布局。

    ViewPagerTabs的使用

    ViewPagerTabs代码定义及实现:

            //图标
            mTabIcons = new int[TAB_COUNT_WITH_VOICEMAIL];
            mTabIcons[TAB_INDEX_SPEED_DIAL] = R.drawable.tab_speed_dial;
            mTabIcons[TAB_INDEX_RECENTS] = R.drawable.tab_recents;
            mTabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.tab_contacts;
            mTabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.tab_voicemail;
    
            //初始化ViewPageTabs。
            mViewPagerTabs = (ViewPagerTabs) parentView.findViewById(R.id.lists_pager_header);
            mViewPagerTabs.setTabIcons(mTabIcons);
            //mViewPagerTabs与ViewPager进行关联
            mViewPagerTabs.setViewPager(mViewPager);

    上述代码实现了mViewPagerTabs 和mViewPager关联,那么怎么实现将上方图标设置为mViewPager的Title的呢?下面分析mViewPagerTabs的实现:主要的看函数setViewPager():

        public void setViewPager(ViewPager viewPager) {
            mPager = viewPager;
            //此处实现添加TAB项,并向addTabs函数传入上面的mViewPagerAdapter。
            addTabs(mPager.getAdapter());
        }
    
        private void addTabs(PagerAdapter adapter) {
            mTabStrip.removeAllViews();
    
            final int count = adapter.getCount();
            for (int i = 0; i < count; i++) {
                //设置Tab项
                addTab(adapter.getPageTitle(i), i);
            }
        }

    下述代码就是详细的设置mViewPager的Tab页,并设置Tab页的监听事件。

        private void addTab(CharSequence tabTitle, final int position) {
            View tabView;
            if (mTabIcons != null && position < mTabIcons.length) {
                View iconView = new View(getContext());
                iconView.setBackgroundResource(mTabIcons[position]);
                iconView.setContentDescription(tabTitle);
    
                tabView = iconView;
            } else {
                final TextView textView = new TextView(getContext());
                textView.setText(tabTitle);
                textView.setBackgroundResource(R.drawable.view_pager_tab_background);
    
                // Assign various text appearance related attributes to child views.
                if (mTextStyle > 0) {
                    textView.setTypeface(textView.getTypeface(), mTextStyle);
                }
                if (mTextSize > 0) {
                    textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
                }
                if (mTextColor != null) {
                    textView.setTextColor(mTextColor);
                }
                textView.setAllCaps(mTextAllCaps);
                textView.setGravity(Gravity.CENTER);
    
                tabView = textView;
            }
    
            tabView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mPager.setCurrentItem(getRtlPosition(position));
                }
            });
    
            tabView.setOnLongClickListener(new OnTabLongClickListener(position));
    
            tabView.setPadding(mSidePadding, 0, mSidePadding, 0);
            mTabStrip.addView(tabView, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.MATCH_PARENT, 1));
    
            // Default to the first child being selected
            if (position == 0) {
                mPrevSelected = 0;
                tabView.setSelected(true);
            }
        }

    至此也将mViewPagerTabs和mViewPager进行完美结合;mViewPagerTabs的作用就是讲Tab的设置独立出来,方便进行定制和复用。

    后记

    后续会进行通话记录页面的详细分析,也就是CallLogFragment的详细布局及数据实现。

    Keep Moving!!!

    展开全文
  • 现在开发中的功能需要直接跳转到拨号、联系人、短信界面... 首先,我们先看拨号界面,代码如下:Intent intent =new Intent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent);和

               现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。


             首先,我们先看拨号界面,代码如下:

    Intent intent =new Intent();
            	intent.setAction("android.intent.action.CALL_BUTTON");
            	startActivity(intent);

    和   

    Uri uri = Uri.parse("tel:xxxxxx"); 
    Intent intent = new Intent(Intent.ACTION_DIAL, uri);   
    startActivity(intent);

    两者都行   

    但是如果是跳转到应用,使用一下代码:

    Intent intent= new Intent("android.intent.action.DIAL"); 
    intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity");

              到通话记录界面:

    Intent intent=new Intent();
    intent.setAction(Intent.ACTION_CALL_BUTTON);
    startActivity(intent);


                 到联系人界面

    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_VIEW); 
    intent.setData(Contacts.People.CONTENT_URI); 
    startActivity(intent); 

    同理,到应用:

    Intent intent= new Intent("com.android.contacts.action.LIST_STREQUENT"); 
    intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity");


              调用联系人界面:

    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_PICK); 
    intent.setData(Contacts.People.CONTENT_URI); 
    startActivity(intent); 

              插入联系人
      Intent intent=new Intent(Intent.ACTION_EDIT,Uri.parse("content://com.android.contacts/contacts/"+"1"));
      startActivity(intent);

                 到联系人列表界面      

    Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
    			intent.setType("vnd.android.cursor.item/person");
    			intent.setType("vnd.android.cursor.item/contact");
    			intent.setType("vnd.android.cursor.item/raw_contact");
    			intent.putExtra(android.provider.ContactsContract.Intents.Insert.NAME, name);
    			intent.putExtra(android.provider.ContactsContract.Intents.Insert.COMPANY,company);
    			intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE, tel);
    			intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE_TYPE, 3);
    


        到短信界面:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    				intent.setType("vnd.android-dir/mms-sms");
    //				intent.setData(Uri.parse("content://mms-sms/conversations/"));//此为号码
    				startActivity(intent);

    到应用:

    Intent intent = new Intent("android.intent.action.CONVERSATION");
    startActivity(intent);

    以下是在网上找到的其他方法:


    1.从google搜索内容 
    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_WEB_SEARCH); 
    intent.putExtra(SearchManager.QUERY,"searchString") 
    startActivity(intent); 


    2.浏览网页 
    Uri uri = Uri.parse("http://www.google.com"); 
    Intent it   = new Intent(Intent.ACTION_VIEW,uri); 
    startActivity(it); 
    

    3.显示地图 
    Uri uri = Uri.parse("geo:38.899533,-77.036476"); 
    Intent it = new Intent(Intent.Action_VIEW,uri); 
    startActivity(it); 


    4.路径规划 
    Uri uri = Uri.parse("http://maps.google.com/maps?f=dsaddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); 
    Intent it = new Intent(Intent.ACTION_VIEW,URI); 
    startActivity(it);

     

    5.拨打电话 
    Uri uri = Uri.parse("tel:xxxxxx"); 
    Intent it = new Intent(Intent.ACTION_DIAL, uri);   
    startActivity(it);

    uri = Uri.parse("tel:"+number);  
                    intent = new Intent(Intent.ACTION_CALL,uri);  
                    startActivity(intent); 

    其中不同自己试验一下就知道了。 

    6.调用发短信的程序 


    Intent it = new Intent(Intent.ACTION_VIEW);   
    it.putExtra("sms_body", "The SMS text");   
    it.setType("vnd.android-dir/mms-sms");   
    startActivity(it);

    和 

    uri = Uri.parse("smsto:"+要发送短信的对方的number);  
                    intent = new Intent(Intent.ACTION_SENDTO,uri);  
                    startActivity(intent);  
    mIntent = new Intent(Intent.ACTION_VIEW);  
            mIntent.putExtra("address", c.getString(c.getColumnIndex(column)));  
            mIntent.setType("vnd.android-dir/mms-sms");  
            startActivity(mIntent);  

    7.发送短信 
    Uri uri = Uri.parse("smsto:0800000123");   
    Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
    it.putExtra("sms_body", "The SMS text");   
    startActivity(it); 
    String body="this is sms demo"; 
    Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", number, null)); 
    mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body); 
    mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true); 
    mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true); 
    startActivity(mmsintent); 

    8.发送彩信 
    Uri uri = Uri.parse("content://media/external/images/media/23");   
    Intent it = new Intent(Intent.ACTION_SEND);   
    it.putExtra("sms_body", "some text");   
    it.putExtra(Intent.EXTRA_STREAM, uri);   
    it.setType("image/png");   
    startActivity(it); 
    StringBuilder sb = new StringBuilder(); 
    sb.append("file://"); 
    sb.append(fd.getAbsoluteFile()); 
    Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mmsto", number, null)); 
    // Below extra datas are all optional. 
    intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT, subject); 
    intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body); 
    intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI, sb.toString()); 
    intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, composeMode); 
    intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, exitOnSent); 
    startActivity(intent); 
    


    9.发送Email 
    Uri uri = Uri.parse("mailto:xxx@abc.com"); 
    Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
    startActivity(it); 
    Intent it = new Intent(Intent.ACTION_SEND);   
    it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");   
    it.putExtra(Intent.EXTRA_TEXT, "The email body text");   
    it.setType("text/plain");   
    startActivity(Intent.createChooser(it, "Choose Email Client")); 
    Intent it=new Intent(Intent.ACTION_SEND);     
    String[] tos={"me@abc.com"};     
    String[] ccs={"you@abc.com"};     
    it.putExtra(Intent.EXTRA_EMAIL, tos);     
    it.putExtra(Intent.EXTRA_CC, ccs);     
    it.putExtra(Intent.EXTRA_TEXT, "The email body text");     
    it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");     
    it.setType("message/rfc822");     
    startActivity(Intent.createChooser(it, "Choose Email Client"));   
    
    Intent it = new Intent(Intent.ACTION_SEND);   
    it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   
    it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");   
    sendIntent.setType("audio/mp3");   
    startActivity(Intent.createChooser(it, "Choose Email Client")); 



    10.播放多媒体   
    Intent it = new Intent(Intent.ACTION_VIEW); 
    Uri uri = Uri.parse("file:///sdcard/song.mp3"); 
    it.setDataAndType(uri, "audio/mp3"); 
    startActivity(it); 
    Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");   
    Intent it = new Intent(Intent.ACTION_VIEW, uri);   
    startActivity(it); 

    11.uninstall apk 
    Uri uri = Uri.fromParts("package", strPackageName, null);   
    Intent it = new Intent(Intent.ACTION_DELETE, uri);   
    startActivity(it); 

    12.install apk 
    Uri installUri = Uri.fromParts("package", "xxx", null); 
    returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri); 

    13. 打开照相机 
    <1>Intent i = new Intent(Intent.ACTION_CAMERA_BUTTON, null); 
              this.sendBroadcast(i); 
        <2>long dateTaken = System.currentTimeMillis(); 
             String name = createName(dateTaken) + ".jpg"; 
             fileName = folder + name; 
             ContentValues values = new ContentValues(); 
             values.put(Images.Media.TITLE, fileName); 
             values.put("_data", fileName); 
             values.put(Images.Media.PICASA_ID, fileName); 
             values.put(Images.Media.DISPLAY_NAME, fileName); 
             values.put(Images.Media.DESCRIPTION, fileName); 
             values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileName); 
             Uri photoUri = getContentResolver().insert( 
                       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
               
             Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
             inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); 
             startActivityForResult(inttPhoto, 10); 

    14.从gallery选取图片 
      
     Intent i = new Intent(); 
             i.setType("image/*"); 
             i.setAction(Intent.ACTION_GET_CONTENT); 
             startActivityForResult(i, 11); 

    15. 打开录音机 
    Intent mi = new Intent(Media.RECORD_SOUND_ACTION); 
             startActivity(mi); 
    16.显示应用详细列表      
    Uri uri = Uri.parse("market://details?id=app_id");        
    Intent it = new Intent(Intent.ACTION_VIEW, uri);        
    startActivity(it);        
    //where app_id is the application ID, find the ID         
    //by clicking on your application on Market home         
    //page, and notice the ID from the address bar    

    刚才找app id未果,结果发现用package name也可以 Uri uri = Uri.parse("market://details?id=<packagename>"); 
    这个简单多了 

    17寻找应用      
    Uri uri = Uri.parse("market://search?q=pname:pkg_name");        
    Intent it = new Intent(Intent.ACTION_VIEW, uri);        
    startActivity(it); 
    //where pkg_name is the full package path for an application     

    18打开联系人列表 
            
     <1>           
              Intent i = new Intent(); 
              i.setAction(Intent.ACTION_GET_CONTENT); 
              i.setType("vnd.android.cursor.item/phone"); 
              startActivityForResult(i, REQUEST_TEXT); 
    <2> 
             Uri uri = Uri.parse("content://contacts/people"); 
             Intent it = new Intent(Intent.ACTION_PICK, uri); 
             startActivityForResult(it, REQUEST_TEXT); 

    19 打开另一程序 
    Intent i = new Intent(); 
             ComponentName cn = new ComponentName("com.yellowbook.android2", 
                       "com.yellowbook.android2.AndroidSearch"); 
             i.setComponent(cn); 
             i.setAction("android.intent.action.MAIN"); 
             startActivityForResult(i, RESULT_OK); 

    20 添加到短信收件箱

    1. ContentValues cv = new ContentValues();      
    2.                 cv.put("type""1");   
    3. cv.put("address","短信地址");  
    4. cv.put("body""短信内容");   
    5. getContentResolver().insert(Uri.parse("content://sms/inbox"), cv);   

     

     

    21 从sim卡或者联系人中查询

    1. Cursor cursor;  
    2.         Uri uri;  
    3.         if (type == 1) {  
    4.             Intent intent = new Intent();  
    5.             intent.setData(Uri.parse("content://icc/adn"));  
    6.             uri = intent.getData();  
    7.         } else  
    8.             uri = People.CONTENT_URI;  
    9.   
    10.         cursor = activity.getContentResolver().query(uri, nullnullnullnull);  
    11. while (cursor.moveToNext()) {  
    12.  int peopleId = cursor.getColumnIndex(People._ID);
    13.  int nameId = cursor.getColumnIndex(People.NAME); 
    14.  int phoneId = cursor.getColumnIndex(People.NUMBER);} 

    查看某个联系人,当然这里是ACTION_VIEW,如果为选择并返回action改为ACTION_PICK,当然处理intent时返回需要用到 startActivityforResult 

    Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, ID);//最后的ID参数为联系人Provider中的数据库BaseID,即哪一行 

    Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent); 




    22 删除

    1. uri = ContentUris.withAppendedId(People.CONTENT_URI, 联系人id);  
    2.         int count = activity.getContentResolver().delete(uri, nullnull);  

     

    23 添加到联系人:

    1. ContentValues cv = new ContentValues();  
    2.                     ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();  
    3.                     ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);  
    4.                     builder.withValues(cv);  
    5.                     operationList.add(builder.build());  
    6.                     builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);  
    7.                     builder.withValueBackReference(StructuredName.RAW_CONTACT_ID, 0);  
    8.                     builder.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);  
    9.                     builder.withValue(StructuredName.DISPLAY_NAME, "自定义联系人名");  
    10.                     operationList.add(builder.build());  
    11.                     builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);  
    12.                     builder.withValueBackReference(Phone.RAW_CONTACT_ID, 0);  
    13.                     builder.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);  
    14.                     builder.withValue(Phone.NUMBER, "联系人的phonenumber");  
    15.                     builder.withValue(Data.IS_PRIMARY, 1);  
    16.                     operationList.add(builder.build());  
    17.                     try {  
    18.                         getContentResolver().applyBatch(ContactsContract.AUTHORITY, operationList);  
    19.                     } catch (RemoteException e) {  
    20.                         e.printStackTrace();  
    21.                     } catch (OperationApplicationException e) {  
    22.                         e.printStackTrace();  
    23.                     }  

     23 选择一个图片 

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.addCategory(Intent.CATEGORY_OPENABLE);
     intent.setType("image/*");
     startActivityForResult(intent, 0); 

    24 调用Android设备的照相机,并设置拍照后存放位置

     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
     intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory().getAbsolutePath()+"/cwj", android123 + ".jpg"))); //存放位置为sdcard卡上cwj文件夹,文件名为android123.jpg格式
     startActivityForResult(intent, 0);

    25 在market上搜索指定package name,比如搜索com.android123.cwj的写法如下 

    Uri uri = Uri.parse("market://search?q=pname:com.android123.cwj");
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);

    26 获取文件信息,并使用相对应软件打开

    private void openFile(File f)  
     {  
       Intent intent = new Intent();  
       intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
       intent.setAction(android.content.Intent.ACTION_VIEW);  
       String type = getMIMEType(f);  
       intent.setDataAndType(Uri.fromFile(f), type);  
       startActivity(intent);  
     }  
     
     private String getMIMEType(File f){  
       String end = f  
           .getName()  
           .substring(f.getName().lastIndexOf(".") + 1,  
               f.getName().length()).toLowerCase();  
       String type = "";  
       if (end.equals("mp3") || end.equals("aac") || end.equals("aac")  
           || end.equals("amr") || end.equals("mpeg")  
           || end.equals("mp4"))  
       {  
         type = "audio";  
       } else if (end.equals("jpg") || end.equals("gif")  
           || end.equals("png") || end.equals("jpeg"))  
       {  
         type = "image";  
       } else  
       {  
         type = "*";  
       }  
       type += "/*";  
       return type;  
     } 



    展开全文
  • 怎么去掉联系人 通话记录 拨号列表界面中的电话号码中间的空格
                    1. 注解掉格式化处理
        FILE: PhoneNumberFormatter.java
    Before KK1
        PATH: alps/packages/apps/contacts/src/com/android/contacts/Util
    After KK1
        PATH: alps/packages/apps/contactscommon/src/com/android/contacts/common/Util

            public void afterTextChanged(Editable s) {
                mSelfChanged = true;
                /**不去调用父类format逻辑
                *super.afterTextChanged(s);
                **/
                mSelfChanged = false;
            }
     
    2. 修改formatNumber方法直接返回原始号码,不会其进行格式化
        FILE: PhoneNumberUtils.java 
        PATH: alps/frameworks/base/telephony/java/android/Telephony


        /**
         * Format a phone number.
         * <p>
         * If the given number doesn't have the country code, the phone will be
         * formatted to the default country's convention.
         *
         * @param phoneNumber
         *            the number to be formatted.
         * @param defaultCountryIso
         *            the ISO 3166-1 two letters country code whose convention will
         *            be used if the given number doesn't have the country code.
         * @return the formatted number, or null if the given number is not valid.
         *
         * @hide
         */
        public static String formatNumber(String phoneNumber, String defaultCountryIso) {
              // Before modified
    //        // Do not attempt to format numbers that start with a hash or star symbol.
    //        if (phoneNumber.startsWith("#") || phoneNumber.startsWith("*")) {
    //            return phoneNumber;
    //        }
    //        PhoneNumberUtil util = PhoneNumberUtil.getInstance();
    //        String result = null;
    //        try {
    //            PhoneNumber pn = util.parseAndKeepRawInput(phoneNumber, defaultCountryIso);
    //            result = util.formatInOriginalFormat(pn, defaultCountryIso);
    //        } catch (NumberParseException e) {
    //        }
    //        return result;
              // After modified
              return phoneNumber;   // Just return, don't format the phoneNumber
        }
     
    3. 去掉导入号码时的格式化处理代码
    Before JB5
        FILE: AbstractStartSIMService.java
        PATH: alps/packages/apps/contacts/src/com/mediatek/contacts/Simcontact
    After JB5
        FILE: SIMImportProcessor.java 
        PATH: alps/packages/apps/contacts/src/com/mediatek/contacts/simservice
        (1) 去掉 actuallyImportOneSimContact() 方法中对 phoneNumber 的格式化处理代码 :

                        /*
                         * Bug Fix by Mediatek Begin. Original Android's code: xxx
                         * CR ID: ALPS00289127 Descriptions:
                         */
                        Log.i(TAG, "[actuallyImportOneSimContact] phoneNumber before : " + phoneNumber);
    //                    AsYouTypeFormatter mFormatter = PhoneNumberUtil.getInstance()
    //                            .getAsYouTypeFormatter(countryCode);
    //                    char[] cha = phoneNumber.toCharArray();
    //                    int ii = cha.length;
    //                    for (int num = 0; num < ii; num++) {
    //                        phoneNumber = mFormatter.inputDigit(cha[num]);
    //                    }
                        Log.i(TAG, "[actuallyImportOneSimContact] phoneNumber after : " + phoneNumber);
                        /*
                         * Bug Fix by Mediatek End.
                         */
     
        (2) 去掉 actuallyImportOneSimContact() 方法中对 additionalNumber 的格式化处理代码:
                            /*
                             * Bug Fix by Mediatek Begin. Original Android's code:
                             * xxx CR ID: ALPS00289127 Descriptions:
                             */
                            Log.i(TAG, "[actuallyImportOneSimContact] additionalNumber before : "
                                    + additionalNumber);
    //                        AsYouTypeFormatter mFormatter = PhoneNumberUtil.getInstance()
    //                                .getAsYouTypeFormatter(countryCode);
    //                        char[] cha = additionalNumber.toCharArray();
    //                        int ii = cha.length;
    //                        for (int num = 0; num < ii; num++) {
    //                            additionalNumber = mFormatter.inputDigit(cha[num]);
    //                        }
                            Log.i(TAG, "[actuallyImportOneSimContact] additionalNumber after : "
                                    + additionalNumber);
                            /*
                             * Bug Fix by Mediatek End.
                             */           

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 【Dialer】android6.0拨号界面分析<一>

    千次阅读 2016-04-01 17:34:07
    题记工作需要,最近对拨号模块进行研究,下文主要介绍Android6.0下拨号应用主界面。Dialer代码目录Dialer上层代码主要有以下部分组成: /packages/apps/Dialer/ –拨号应用主入口 /packages/apps/ContactsCommon –...
  • Android4.0仿三星通话记录界面滑动拨号问题总结 ---------------------------------------------------------------------------------------------------------------------------------------------------- 问题...
  • 状态栏、拨号界面、快捷键

    千次阅读 2011-02-22 17:39:00
    因此,需要清空记录缓冲区的记录,防止待机界面的日历项仍然显示。 memset(&g_tdl_cntx.NoteBuff,0,MAX_TODO_LIST_NOTE); 2 综合 2.1修改每个新版本的默认日期: 文件:Custom_hw_default.c 数字代表基准年份的...
  • 拨号界面输入*#*#4636#*#*里面教学

    万次阅读 2018-09-02 15:06:29
    *#*#4636#*#* — 显示手机信息、电池信息、电池记录使用统计数据、WiFi 信息。 *#06# 显示IMEI号; *#92702689# 总通话时间 *#7780# 恢复出厂模式 *#0000# 软件版本 *#7760# 生产线号 *#2820# 蓝牙设备地址 ...
  • Android手机可以通过以下命令查看使用记录,痕迹: *#*#4636#*#*  显示手机资讯、电池资讯、电池记录使用统计资料、WiFi 资讯  *#*#7780#*#*  重设为原厂设定,不会删除预设程式,及SD 卡档案。  *2767...
  • Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面 现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。 1 2 3 4 5 6 7 ...
  • Android5.1 拨号生成通话记录

    千次阅读 2016-01-01 16:51:01
    概述:首先拨号,会走正常的拨号流程,可参考另外一篇文章,除此之外,拨号除了会将当前通话加入到CallList中,同时会利用状态变化通知将这路通话保存到通话记录数据库等待下次显示调用,但是注意,只有挂断时才去...
  • 前言  欢迎大家我分享和推荐好用的代码段~~ 声明  欢迎转载,但请保留文章原始出处:  CSDN:http://www.csdn.net ... 正文   ...怎么去掉联系人、通话记录拨号列表界面中的电话号码中间的空格? 去掉空格也就是
  • 上文已经说过拨号界面的分页是怎么实现的,下面我们分三次来分享拨号页面内的每一个页面的具体实现,我们先从拨号盘开始说起。 上文通过ViewPager的适配器对象中,发现过一下三行代码 private DialpadFragment ...
  • 怎么去掉联系人、通话记录拨号列表界面中的电话号码中间的空格? 去掉空格也就是去掉号码格式化,对所有的号码串将不进行号码格式化。   [SOLUTION]   1. 注解掉格式化处理  FILE: ...
  • 1. 注解掉格式化处理  FILE: PhoneNumberFormatter.java Before KK1  PATH: alps/packages/apps/contacts/src/com/android/contacts/Util After KK1  PATH: alps/packages/apps/contactscommon/src/com/androi
  • 获取到手机号后 可以设置这些项 点击跳转到联系人列表、拨号面板和通话记录
  • 1.在拨号界面输入*#*#4636#*#* 即可查看 2.*#06# 查看手机的IMEI信息 源代码如下:  public void afterTextChanged(Editable input) {  if (SpecialCharSequenceMgr.handleChars(this, input.toString(), ...
  • 通话记录分析 --- 界面

    千次阅读 2018-01-01 18:03:58
    android 系统中,和通话记录相关的有4个界面,还有一些其他功能。 第一个界面是dialer启动之后的三个界面之一的通话记录,这三个界面分别是收藏的联系人/通话记录/所有联系人。是DialtactsActivity...
  • 看完了拨号界面的实现后,大家可能会感觉到,挺简单的,没什么复杂的,只是onCreateView方法中加载了一个layout,然后就全都看到了,so easy! 那么,我们接下来就分享一下稍微复杂一点的CallLog界面,希望...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,496
精华内容 6,998
关键字:

如何在拨号界面查看使用记录