shareinstall之Android SDK集成
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shareinstall之Android SDK集成相关的知识,希望对你有一定的参考价值。
提示:以下代码(配置)由shareinstall根据当前应用动态生成,开发者可直接使用;按照以下步骤指引,10分钟即可完成android SDK集成。
一、导入SDK
Android SDK 下载 v1.0.6 http://api.shareinstall.com/download/1.0.6/android
Android DEMO 下载 v1.0.6 http://api.shareinstall.com/download/1.0.6/androiddemo
从下载的ShareInstallSdk.zip文件中,将aar文件拷贝到项目的libs文件夹中,并导入
dependencies {
compile(name: ‘ShareInstall_1.0.5‘, ext: ‘aar‘)
}
(注:导入aar需检查build文件中是否已经加入以下代码,否则会报错)
repositories {
flatDir {
dirs ‘libs‘
}
}
二、基础配置
在AndroidMainfest.xml中添加权限声明。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
在AndroidMainfest.xml中的application标签中添加分配给你应用的Appkey
<meta-data
android:name="com.shareinstall.APP_KEY"
android:value="K2BK7B6HH7F7R2"/>
在自定义Application中调用ShareInstall.getInstance().init(context)方法完成SDK初始化,初始化前先判断当前进程是否是应用的主进程。
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
if (isMainProcess()) {
ShareInstall.getInstance().init(getApplicationContext());
}
}
/**
* 判断当前进程是否是应用的主进程
*
* @return
*/
public boolean isMainProcess() {
int pid = android.os.Process.myPid();
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo appProcess : activityManager.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
return getApplicationInfo().packageName.equals(appProcess.processName);
}
}
return false;
}
}
如果使用ShareInstall控制中心提供的注册统计功能,可调用方法ShareInstall.getInstance().reportRegister(); 注意该方法要在ShareInstall.getInstance().init (context)方法之后调用,否则会抛异常。
// 调用注册接口
ShareInstall.getInstance().reportRegister();
在AndroidMainfest.xml中的application标签中添加android:name=".MyApplication"指定自定义的Application类,以便程序启动的时候初始化自定义Application类,而不是系统默认的Application类。
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
application
android:name=".MyApplication"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"android:theme="@style/AppTheme">
br/>android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>
三、一键跳转
在AndroidMainfest的唤醒页面activity标签中添加intent-filter(一般为MainActivity),配置scheme,用于浏览器中拉起。
<activity
android:name=".MainActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="afap0343" />
</intent-filter>
</activity>
注:如果唤醒页面和启动页是同一Activity,则AndroidMaifest.xml的配置如下。
<activity
android:name=".MainActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="afap0343"/>
</intent-filter>
</activity>
个性化安装和一键唤醒都调用同一个方法ShareInstall.getInstance().getInfo()获取相关信息,第一个参数为Intent(注:Intent可传null,但在配置了scheme唤醒的页面必须传,否则拿不到传递过来的参数),第二个参数为信息回调监听
四、个性化安装
在APP需要个性化安装参数时(由web网页中传递过来的,如邀请码、游戏房间号等 自定义参数),调用以下方法,在回调中获取参数。
ShareInstall.getInstance().getInfo(intent, new AppGetInfoListener() {br/>@Override
public void onGetInfoFinish(String info) {
Log.d("ShareInstall", "info = " + info);
}
});
五、唤醒页面获取信息
public class WakeUpActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wake_up);
// 获取唤醒参数
ShareInstall.getInstance().getInfo(getIntent(), listener);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// 此处要调用,否则app在后台运行时,会无法截获
ShareInstall.getInstance().getInfo(intent, listener);
}
private AppGetInfoListener listener = new AppGetInfoListener() {
@Override
public void onGetInfoFinish(String info) {
Log.d("ShareInstall", "info = " + info);
}
};
以上是关于shareinstall之Android SDK集成的主要内容,如果未能解决你的问题,请参考以下文章