Android应用互通的实现。
游戏à第三方登录sdkà第三方app
多个Activity页面间相互传递数据
调用sdk登录时,开启第三方app的指定页面。
第三方页面配置
<activityandroid:name=".SecondActivity"
android:exported="true">
</activity>
开启方式,intent传递数据
Intent intent = new Intent(); ComponentName comp = new ComponentName("com.example.mytestopenotherapp", "com.example.mytestopenotherapp.SecondActivity"); intent.setComponent(comp); intent.putExtra("info", "second"); intent.putExtra("package_info",getApplicationInfo().packageName);
intent.putExtra("back_class", GyyxBackActivity.class.toString()); startActivity(intent);
回调实现方式
游戏应用创建一个activity,当第三方app数据处理完成后。开启这个传递的页面。
在这个新页面中处理返回的数据
ActivityForResult方式
在开启的时候使用
startActivityForResult(intent,0);
第三方数据处理完成后
Intent intent = new Intent(); intent.putExtra("back_info", "backInfo"); setResult(0,intent);
在游戏的页面中onActivityResult中处理返回数据
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); LogUtil.e("result.......data = "+data.getExtras().getString("back_info")); listener.onComplete(null); }
Adroid:eported
设置值时:
当exported为true时,表示可以被其它应用打开·。
为false,不能被其他应用打开。
不是设置值时:
当activity包含intent filter时,默认为false。
无intent filter时,默认为true
注意:设置值并且有intentfilter时,以设置的值为准。
<activity android:name=".SecondActivity" android:exported="true"> </activity>
Intent filter
待续...