android隐式意图激活自定义界面和系统应用界面

我们也可以使用隐士意图激活自定义的界面,并且可以携带数据:

效果:

android隐式意图激活自定义界面和系统应用界面_第1张图片

点击第二个按钮后:

android隐式意图激活自定义界面和系统应用界面_第2张图片

点击最后一个按钮(激活系统短消息界面)后:

android隐式意图激活自定义界面和系统应用界面_第3张图片

 

附代码:

主窗体的代码:

 1 package com.yy.twoactivity;
 2 
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.net.Uri;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 
 9 public class MainActivity extends Activity {
10 
11     @Override
12     protected void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.activity_main);
15     }
16     
17     /**
18      * 点击事件,当用户点击的时候跳转到第二个界面
19      * @param view
20      */
21     public void click(View view){
22         //意图
23         Intent intent=new Intent();
24         //设置包和界面,显式意图
25         intent.setClassName(this, "com.yy.twoactivity.SecondActivity");
26         //跳转到新的设定好的界面
27         startActivity(intent);
28     }
29     
30     /**
31      * 点击事件,当用户点击的时候隐式意图跳转到第二个界面
32      * @param view
33      */
34     public void click3(View view){
35         //意图
36         Intent intent=new Intent();
37         //设置包和界面,隐式意图
38         intent.setAction("com.yy.xxx");
39         //设置额外的信息【非必需,和主配置文件对应】
40         intent.addCategory(Intent.CATEGORY_DEFAULT);
41         //设置数据【非必须,和主配置文件对应,可以携带数据】
42         intent.setData(Uri.parse("yy:adbc"));
43         //跳转到新的设定好的界面
44         startActivity(intent);
45     }
46     
47     /**
48      * 点击事件,激活系统的应用 程序界面
49      * @param view
50      */
51     public void click2(View view){
52         //意图
53         Intent intent=new Intent();
54         //设置预打开系统应用的包和界面,显式意图
55         // cmp=com.android.gallery/com.android.camera.GalleryPicker 
56         intent.setClassName("com.android.gallery", "com.android.camera.GalleryPicker");
57         //跳转到新的设定好的界面
58         startActivity(intent);
59     }
60     
61     /**
62      * 点击事件,当用户点击的时候隐式意图激活系统短消息
63      * @param view
64      */
65     public void click4(View view){
66         //意图
67         Intent intent=new Intent();
68         //设置包和界面,隐式意图
69         intent.setAction("android.intent.action.SENDTO");
70         //设置额外的信息【非必需,和主配置文件对应】
71         intent.addCategory("android.intent.category.DEFAULT");
72         //设置数据【非必须,和主配置文件对应,可以携带数据】,前缀是看短信息应用配置文件的scheme知道的
73         intent.setData(Uri.parse("sms:15588890908"));
74         //跳转到新的设定好的界面
75         startActivity(intent);
76     }
77 }

 


第二个窗体的代码:

 1 package com.yy.twoactivity;
 2 
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.net.Uri;
 6 import android.os.Bundle;
 7 
 8 public class SecondActivity extends Activity {
 9     @Override
10     protected void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.activity2);
13         
14         //获取打开当前界面的意图
15         Intent intent=getIntent();
16         Uri uri=intent.getData();
17         //获取到使用intent.setData(Uri.parse("yy:adbc"));携带的数据
18         String data=uri.getSchemeSpecificPart();
19         System.out.println(data);
20     }
21 }

 

另外需要在AndoridManifest.xml文件中配置:

 1  <application
 2         android:allowBackup="true"
 3         android:icon="@drawable/ic_launcher"
 4         android:label="@string/app_name"
 5         android:theme="@style/AppTheme" >
 6         <activity
 7             android:name=".MainActivity"
 8             android:label="@string/app_name" >
 9             <intent-filter>
10                 <action android:name="android.intent.action.MAIN" />
11 
12                 <category android:name="android.intent.category.LAUNCHER" />
13             </intent-filter>
14         </activity>
15         <activity
16             android:name=".SecondActivity"
17             android:label="@string/app_second_name" >
18             <intent-filter>
19                 <action android:name="com.yy.xxx"/>
20                 <category android:name="android.intent.category.DEFAULT"></category>
21                 <data android:scheme="yy"/>
22             </intent-filter>
23         </activity>
24     </application>

 

你可能感兴趣的:(android隐式意图激活自定义界面和系统应用界面)