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

时间:2021-05-20

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

效果:

点击第二个按钮后:

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

附代码:

主窗体的代码:

package com.yy.twoactivity;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 点击事件,当用户点击的时候跳转到第二个界面 * @param view */ public void click(View view){ //意图 Intent intent=new Intent(); //设置包和界面,显式意图 intent.setClassName(this, "com.yy.twoactivity.SecondActivity"); //跳转到新的设定好的界面 startActivity(intent); } /** * 点击事件,当用户点击的时候隐式意图跳转到第二个界面 * @param view */ public void click3(View view){ //意图 Intent intent=new Intent(); //设置包和界面,隐式意图 intent.setAction("com.yy.xxx"); //设置额外的信息【非必需,和主配置文件对应】 intent.addCategory(Intent.CATEGORY_DEFAULT); //设置数据【非必须,和主配置文件对应,可以携带数据】 intent.setData(Uri.parse("yy:adbc")); //跳转到新的设定好的界面 startActivity(intent); } /** * 点击事件,激活系统的应用 程序界面 * @param view */ public void click2(View view){ //意图 Intent intent=new Intent(); //设置预打开系统应用的包和界面,显式意图 // cmp=com.android.gallery/com.android.camera.GalleryPicker intent.setClassName("com.android.gallery", "com.android.camera.GalleryPicker"); //跳转到新的设定好的界面 startActivity(intent); } /** * 点击事件,当用户点击的时候隐式意图激活系统短消息 * @param view */ public void click4(View view){ //意图 Intent intent=new Intent(); //设置包和界面,隐式意图 intent.setAction("android.intent.action.SENDTO"); //设置额外的信息【非必需,和主配置文件对应】 intent.addCategory("android.intent.category.DEFAULT"); //设置数据【非必须,和主配置文件对应,可以携带数据】,前缀是看短信息应用配置文件的scheme知道的 intent.setData(Uri.parse("sms:15588890908")); //跳转到新的设定好的界面 startActivity(intent); }}

第二个窗体的代码:

package com.yy.twoactivity;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity2); //获取打开当前界面的意图 Intent intent=getIntent(); Uri uri=intent.getData(); //获取到使用intent.setData(Uri.parse("yy:adbc"));携带的数据 String data=uri.getSchemeSpecificPart(); System.out.println(data); }}

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

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" android:label="@string/app_second_name" > <intent-filter> <action android:name="com.yy.xxx"/> <category android:name="android.intent.category.DEFAULT"></category> <data android:scheme="yy"/> </intent-filter> </activity> </application>

以上这篇android隐式意图激活自定义界面和系统应用界面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章