Android 启动第三方app

高功
2023-12-01

一:直接通过包名

Intent intent = getPackageManager().getLaunchIntentForPackage("com.test.mydemo");
startActivity(intent);

Intent intent=new Intent();  
//包名 包名+类名(全路径)  
intent.setClassName("com.test.mydemo", "com.test.mydemo.TestActivity");  
startActivity(intent)


二:通过自定义的Action

Intent intent = new Intent();
                intent.setAction("com.test.mydemo.main");
                MainActivity.this.startActivity(intent);
 
<intent-filter>
                <action android:name="com.test.mydemo.main" />
                <category android:name="android.intent.category.DEFAULT" />               
            </intent-filter>
Android.intent.action.MAIN决定应用程序最先启动的Activity,android.intent.category.LAUNCHER决定应用程序是否显示在 
程序列表里。

三:通过Scheme
Intent intent = new Intent();
                intent.setData(Uri.parse("mydemo://"));
                startActivity(intent);
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="mydemo"  />               
            </intent-filter>




附加内容:
微博 com.sina.weibo com.sina.weibo.SplashActivity 
知乎 com.zhihu.android com.zhihu.android.ui.activity.GuideActivity 
薄荷 com.app.one com.app.one.ui.SplashActivity 
打开系统应用:

浏览网页

Uri uri =Uri.parse("http://www.google.com");  
Intent it = new Intent(Intent.ACTION_VIEW,uri);  
startActivity(it);   

拨打电话

Uri uri =Uri.parse("tel:xxxxxx");  
Intent it = new Intent(Intent.ACTION_DIAL,uri);    
startActivity(it);  

发短信

//方法1:  
Intent it = newIntent(Intent.ACTION_VIEW);     
it.putExtra("sms_body", "TheSMS text");     
it.setType("vnd.android-dir/mms-sms");     
startActivity(it);  

//方法2:  
Uri uri =Uri.parse("smsto:0800000123");     
Intent it = newIntent(Intent.ACTION_SENDTO, uri);     
it.putExtra("sms_body", "TheSMS text");     
startActivity(it);  

//方法三:  
String body="this is sms demo";  
Intent mmsintent = newIntent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", number, null));  
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY,body);  
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE,true);  
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT,true);  
startActivity(mmsintent);  

发送彩信

Uri uri =Uri.parse("content://media/external/images/media/23");     
Intent it = newIntent(Intent.ACTION_SEND);     
it.putExtra("sms_body","some text");     
it.putExtra(Intent.EXTRA_STREAM, uri);     
it.setType("image/png");     
startActivity(it);  
StringBuilder sb = new StringBuilder();  
sb.append("file://");  
sb.append(fd.getAbsoluteFile());  
Intent intent = newIntent(Intent.ACTION_SENDTO, Uri.fromParts("mmsto", number, null));  
// Below extra datas are all optional.  
intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT,subject);  
intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY,body);  
intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI,sb.toString());  
intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE,composeMode);  
intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT,exitOnSent);  
startActivity(intent);  

发送Email

Uri uri =Uri.parse("mailto:xxx@abc.com");  
Intent it = newIntent(Intent.ACTION_SENDTO, uri);  
startActivity(it);  

Intent it = new Intent(Intent.ACTION_SEND);     
it.putExtra(Intent.EXTRA_EMAIL,"me@abc.com");     
it.putExtra(Intent.EXTRA_TEXT, "Theemail body text");     
it.setType("text/plain");     
startActivity(Intent.createChooser(it,"Choose Email Client"));  

Intent it=new Intent(Intent.ACTION_SEND);       
String[] tos={"me@abc.com"};       
String[]ccs={"you@abc.com"};       
it.putExtra(Intent.EXTRA_EMAIL, tos);       
it.putExtra(Intent.EXTRA_CC, ccs);       
it.putExtra(Intent.EXTRA_TEXT, "Theemail body text");       
it.putExtra(Intent.EXTRA_SUBJECT, "Theemail subject text");       
it.setType("message/rfc822");       
startActivity(Intent.createChooser(it,"Choose Email Client"));     

Intent it = newIntent(Intent.ACTION_SEND);     
it.putExtra(Intent.EXTRA_SUBJECT, "Theemail subject text");      
it.putExtra(Intent.EXTRA_STREAM,"file:///sdcard/mysong.mp3");     
sendIntent.setType("audio/mp3");     
startActivity(Intent.createChooser(it,"Choose Email Client"));

播放多媒体

Intent it = new Intent(Intent.ACTION_VIEW);  
Uri uri =Uri.parse("file:///sdcard/song.mp3");  
it.setDataAndType(uri,"audio/mp3");  
startActivity(it);  
Uri uri =Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1");     
Intent it = new Intent(Intent.ACTION_VIEW,uri);     
startActivity(it);  

卸载 apk

Uri uri =Uri.fromParts("package", strPackageName, null);     
Intent it = newIntent(Intent.ACTION_DELETE, uri);     
startActivity(it);  

安装 apk

Uri installUri = Uri.fromParts("package","xxx", null);  
returnIt = newIntent(Intent.ACTION_PACKAGE_ADDED, installUri);  

Intent intent = new Intent(Intent.ACTION_VIEW);  
intent.setDataAndType(Uri.parse("file://" + filepath),"application/vnd.android.package-archive");  
startActivity(intent);// 安装 

打开照相机

//1  
Intent intent = new Intent("android.media.action.STILL_IMAGE_CAMERA"); //调用照相机  
startActivity(intent);  
//2  
Intent i = new Intent(Intent.ACTION_CAMERA_BUTTON, null);  
this.sendBroadcast(i);  
//3  
long dateTaken = System.currentTimeMillis();  
String name = createName(dateTaken) + ".jpg";  
fileName = folder + name;  
ContentValues values = new ContentValues();  
values.put(Images.Media.TITLE, fileName);  
values.put("_data", fileName);  
values.put(Images.Media.PICASA_ID, fileName);  
values.put(Images.Media.DISPLAY_NAME, fileName);  
values.put(Images.Media.DESCRIPTION, fileName);  
values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileName);  
Uri photoUri = getContentResolver().insert(  
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);  

Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);  
startActivityForResult(inttPhoto, 10);  

从gallery选取图片

Intent i = new Intent();  
i.setType("image/*");  
i.setAction(Intent.ACTION_GET_CONTENT);  
startActivityForResult(i, 11);  

打开录音机

Intent mi = new Intent(Media.RECORD_SOUND_ACTION);  
startActivity(mi);  

显示应用详细列表

Uri uri =Uri.parse("market://details?id=app_id");          
Intent it = new Intent(Intent.ACTION_VIEW,uri);          
startActivity(it);          
//where app_id is the application ID, findthe ID           
//by clicking on your application on Markethome           
//page, and notice the ID from the addressbar  
//发现用package name也可以  
//Uri uri =Uri.parse("market://details?id=<packagename>");  

寻找应用

Uri uri =Uri.parse("market://search?q=pname:pkg_name");          
Intent it = new Intent(Intent.ACTION_VIEW,uri);          
startActivity(it);  
//where pkg_name is the full package pathfor an application    

打开联系人列表

//1             
Intent i = new Intent();  
i.setAction(Intent.ACTION_GET_CONTENT);  
i.setType("vnd.android.cursor.item/phone");  
startActivityForResult(i, REQUEST_TEXT);  
//2  
Uri uri = Uri.parse("content://contacts/people");  
Intent it = new Intent(Intent.ACTION_PICK, uri);  
startActivityForResult(it, REQUEST_TEXT);  

调用系统编辑添加联系人

Intent intent = newIntent(Intent.ACTION_INSERT_OR_EDIT);  
intent.setType(People.CONTENT_ITEM_TYPE);  
intent.putExtra(Contacts.Intents.Insert.NAME, "My Name");  
intent.putExtra(Contacts.Intents.Insert.PHONE, "+1234567890");  
intent.putExtra(Contacts.Intents.Insert.PHONE_TYPE,Contacts.PhonesColumns.TYPE_MOBILE);  
intent.putExtra(Contacts.Intents.Insert.EMAIL, "com@com.com");  
intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE, Contacts.ContactMethodsColumns.TYPE_WORK);  
startActivity(intent);

 类似资料: