<< Android五种数据传递方法汇总 - 拙言的专栏 - 博客频道 - CSDN.NET | 首页 | apache/php 性能大幅提升关键参数 - 没有开花的树 - 博客频道 - CSDN.NET >>

Android 跨应用调用Activity及Service - 叶园 - 博客频道 - CSDN.NET

如何调用另外一个app应用的activity或者service,本文提供一个验证可行的方法。

调用方法:

 

[java] view plaincopy
 
  1. Intent intent=new Intent("youActionName");    
  2. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
  3. intent.addCategory(Intent.CATEGORY_DEFAULT);    
  4. intent.putExtra("type",inType);  //if needed     
  5. ComponentName cn=new ComponentName("applicationPackageName","packagename+classname");    
  6. intent.setComponent(cn);    
  7. startActivity(intent);    

 

 

在被调用的App里面需要定义 class (activity 或 service)属性和filter。需要明确的几点

如果不是action.Main,则需要主动申明Android:exported="true",允许外部访问

action name 要一致

category name要一致,如果调用的地方没有明确声明,被调用的地方要声明DEFAULT

 

[html] view plaincopy
 
  1. <activity android:name=".pbap.BluetoothPbapLuancherActivity"     
  2.             android:label="Bluetooth"    
  3.             android:exported="true"    
  4.             android:process="@string/process">    
  5.     <intent-filter>                                   
  6.         <action android:name="android.intent.action.MAIN" />    
  7.         <category android:name="android.intent.category.DEFAULT" />     
  8.     </intent-filter>    
  9. </activity>    
  10.  

阅读全文……

标签 : ,



发表评论 发送引用通报