zoukankan      html  css  js  c++  java
  • Android开发之使用意图调用内置应用程序

    意图可以调用活动,也常被用来调用内置应用程序,如加载web页面,拨号页面,内置地图应用等等。下面就用例子来说明该用法。

    效果图如下:

    实现代码如下:

    上图中的启动MyBrowser是用意图来调用MyWebBrowserActivity活动外,其他三个都是在MainActivity类中直接通过new一个对应类型的Intent,然后通过startActivity()方法来调用内置程序。

    MainActivity类代码:

    package com.example.intents;
    
    
    import com.example.intents.R;
    
    import android.R.anim;
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        int request_code = 1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
        
        public void onClickWebbrowser(View view){
            Intent i = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://m.baidu.com/"));
            startActivity(i);
        }
        public void onClickCall(View view){
    //        Toast.makeText(getApplicationContext(), "dddddddd", Toast.LENGTH_SHORT).show();
    //        Toast.makeText(getApplicationContext(), "dddddddd", Toast.LENGTH_SHORT).show();
    //        Toast.makeText(getApplicationContext(), "dddddddd", Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(android.content.Intent.ACTION_DIAL);
            startActivity(intent);
        }
        public void onClickMap(View view){
            Intent intent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("geo:37.0,-122.0"));
            startActivity(intent);
        }
        public void onClickLaunchMyBrowser(View view){
    //        Intent intent = new Intent("com.example.intents.MyBrowserActivity");
            Intent intent = new Intent("android.intent.action.VIEW");
    //        Intent intent = new Intent("wrong");
            intent.setData(Uri.parse("http://m.baidu.com"));
            //startActivity(intent);
            intent.addCategory("com.example.intents.apps");
            startActivity(Intent.createChooser(intent, "Open URL using..."));
        }
        
    }

    MyBrowserActivity类代码:

    public class MyBrowserActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my_browser);
            
            Uri url = getIntent().getData();
            WebView webView = (WebView)findViewById(R.id.WebBrowser1);
            webView.setWebViewClient(new Callback());
            webView.loadUrl(url.toString());
        }
        private class Callback extends WebViewClient{
            public boolean shouldOverrideUrlLoading(WebView view,String url){
                return false;
            }
        }
  • 相关阅读:
    Linux 进程学习(四) sigaction 函数
    Netty 编解码奥秘
    我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:护国小将,邀请大家一同入驻:https://www.oschina.net/sharingplan/apply
    Netty数据如何在 pipeline 中流动
    PLM系统安装四:主卷服务安装(FSC缓存服务器plm4IP:42.20)
    Linux系统信息和进程相关命令(CPU,内存,进程)
    SAN交换机配置的备份还原,固件升级
    san交换机的级联
    PLM系统安装五(2):Corporate服务安装plm1IP:42.106
    第三步:服务器虚拟化XenServer实施部署文档
  • 原文地址:https://www.cnblogs.com/JczmDeveloper/p/3654767.html
Copyright © 2011-2022 走看看