Android开发之使用意图调用内置应用程序

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

效果图如下:

Android开发之使用意图调用内置应用程序

实现代码如下:

上图中的启动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;

        }

    }

 

你可能感兴趣的:(Android开发)