当前位置: 首页 > news >正文

Android学习笔记之使用意图打开内置应用程序组件


(1)布局文件如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:onClick="IntentTest"
        android:text="从Google搜索内容" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:onClick="IntentTest"
        android:text="游览网页" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button2"
        android:layout_below="@+id/button2"
        android:onClick="IntentTest"
        android:text="显示地图" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button3"
        android:layout_below="@+id/button3"
        android:onClick="IntentTest"
        android:text="拨打电话" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button4"
        android:layout_centerVertical="true"
        android:onClick="IntentTest"
        android:text="发短信" />

    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button5"
        android:layout_below="@+id/button5"
        android:onClick="IntentTest"
        android:text="播放多媒体" />

    <Button
        android:id="@+id/button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button4"
        android:layout_below="@+id/button6"
        android:onClick="IntentTest"
        android:text="安装APK" />

    <Button
        android:id="@+id/button8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button7"
        android:layout_below="@+id/button7"
        android:onClick="IntentTest"
        android:text="卸载APK" />

</RelativeLayout>

(2)MainActivity.java

package com.example.intent_openinterapplicationapi;

import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button button1;
	private Button button2;
	private Button button3;
	private Button button4;
	private Button button5;
	private Button button6;
	private Button button7;
	private Button button8;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button1 = (Button) this.findViewById(R.id.button1);
		button2 = (Button) this.findViewById(R.id.button2);
		button3 = (Button) this.findViewById(R.id.button3);
		button4 = (Button) this.findViewById(R.id.button4);
		button5 = (Button) this.findViewById(R.id.button5);
		button6 = (Button) this.findViewById(R.id.button6);
		button7 = (Button) this.findViewById(R.id.button7);
		button8 = (Button) this.findViewById(R.id.button8);

	}

	public void IntentTest(View v) {
		switch (v.getId()) {
		case R.id.button1:
			Intent intent = new Intent();
			intent.setAction(Intent.ACTION_WEB_SEARCH);
			intent.putExtra(SearchManager.QUERY, "searchString");
			startActivity(intent);
			break;
		case R.id.button2:
			Uri uri = Uri.parse("http://www.baidu.com");
			Intent intent2 = new Intent(Intent.ACTION_VIEW, uri);
			startActivity(intent2);
			break;
		case R.id.button3:
			Uri uri1 = Uri.parse("geo:38.899533,77.036476");
			Intent intent3 = new Intent(Intent.ACTION_VIEW, uri1);
			startActivity(intent3);
			break;
		case R.id.button4:
			Uri uri2 = Uri.parse("tel:18080808080");
			Intent intent4 = new Intent(Intent.ACTION_DIAL, uri2);
			startActivity(intent4);
			break;
		case R.id.button5:
			Intent intent5 = new Intent(Intent.ACTION_VIEW);
			intent5.putExtra("sms_body", "The SMS TEXT!");
			intent5.setType("vnd.android-dir/mms-sms");
			startActivity(intent5);
			break;
		case R.id.button6:
			Intent intent6 = new Intent(Intent.ACTION_VIEW);
			Uri uri3 = Uri.parse("file:///sdcard/song.mp3");
			intent6.setDataAndType(uri3, "audio/mp3");
			startActivity(intent6);
			break;
		case R.id.button7:
			Uri installUri = Uri.fromParts("package", "xxx", null);
			Intent intent7 = new Intent(Intent.ACTION_PACKAGE_ADDED);
			startActivity(intent7);
			break;
		case R.id.button8:
			Uri deletellUri = Uri.fromParts("package", "strPackageName", null);
			Intent intent8 = new Intent(Intent.ACTION_DELETE, deletellUri);
			startActivity(intent8);
			break;

		default:
			break;
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


相关文章:

  • java web sql注入测试(3)---现象分析
  • Android学习笔记之广播意图及广播接收者MyBroadcastReceiver、Broadcast
  • 一些简单的shell脚本实例 转
  • xUtils简介及其使用方法
  • OC基础(20)
  • Android框架Picasso介绍
  • Assets遇到的问题
  • 直接拿来用!最火的Android开源项目(一)
  • python --循环对象
  • Oracle中用触发器实现自动记录表数据被修改的历史信息
  • 直接拿来用!最火的Android开源项目(完结篇)
  • 睡前小dp-codeforce414B-dp+一点点想法
  • SlidingMenu-master中的example怎样导入eclipse运行
  • echarts.js
  • 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
  • [PHP内核探索]PHP中的哈希表
  • [case10]使用RSQL实现端到端的动态查询
  • Centos6.8 使用rpm安装mysql5.7
  • flask接收请求并推入栈
  • Gradle 5.0 正式版发布
  • laravel with 查询列表限制条数
  • Material Design
  • nodejs实现webservice问题总结
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 仿天猫超市收藏抛物线动画工具库
  • 汉诺塔算法
  • 后端_MYSQL
  • 简单实现一个textarea自适应高度
  • 那些被忽略的 JavaScript 数组方法细节
  • 那些年我们用过的显示性能指标
  • 使用权重正则化较少模型过拟合
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • Java数据解析之JSON
  • # 透过事物看本质的能力怎么培养?
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (libusb) usb口自动刷新
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (论文阅读30/100)Convolutional Pose Machines
  • (十一)图像的罗伯特梯度锐化
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)德国人的记事本
  • (转载)Linux 多线程条件变量同步
  • .cfg\.dat\.mak(持续补充)
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net 按比例显示图片的缩略图
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • ??javascript里的变量问题
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?