Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lib_base
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sikang
lib_base
Commits
56bb4473
Commit
56bb4473
authored
Jan 14, 2019
by
sikang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化install_referrer、Android ID 采集
parent
d11b7788
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
105 additions
and
6 deletions
+105
-6
build.gradle
+2
-0
src/main/AndroidManifest.xml
+1
-0
src/main/java/tech/starwin/base/BaseApplication.java
+4
-0
src/main/java/tech/starwin/network/FirebaseHeaderInterceptor.java
+1
-1
src/main/java/tech/starwin/utils/InstallReferrerHelper.java
+59
-0
src/main/java/tech/starwin/utils/PreferencesManager.java
+23
-3
src/main/java/tech/starwin/utils/context_utils/AppInfoUtils.java
+15
-2
No files found.
build.gradle
View file @
56bb4473
...
...
@@ -105,6 +105,8 @@ dependencies {
//firebase remoteConfig
// api 'com.google.firebase:firebase-config:16.0.0'
api
'com.android.installreferrer:installreferrer:1.0'
//facebook accountKit SDK
api
'com.facebook.android:account-kit-sdk:4.37.0'
...
...
src/main/AndroidManifest.xml
View file @
56bb4473
...
...
@@ -13,6 +13,7 @@
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<application>
...
...
src/main/java/tech/starwin/base/BaseApplication.java
View file @
56bb4473
...
...
@@ -6,6 +6,7 @@ import android.support.multidex.MultiDexApplication;
import
signal.JNISignal
;
import
tech.starwin.LibConfig
;
import
tech.starwin.utils.InstallReferrerHelper
;
import
tech.starwin.utils.LogUtils
;
import
tech.starwin.utils.context_utils.AppLanguageUtils
;
...
...
@@ -32,6 +33,9 @@ public abstract class BaseApplication extends MultiDexApplication {
public
void
onCreate
()
{
super
.
onCreate
();
AppLanguageUtils
.
setLanguage
(
this
,
LibConfig
.
LANGUAGE
);
InstallReferrerHelper
.
refershInstallReferrer
(
this
);
LibConfig
.
initLib
(
this
);
//已签名的APP,这里会输出当前签名的 hashCode 值,将 hashCode 在服务端备份(更换签名时要同时更新备份)
...
...
src/main/java/tech/starwin/network/FirebaseHeaderInterceptor.java
View file @
56bb4473
...
...
@@ -32,7 +32,7 @@ public class FirebaseHeaderInterceptor implements Interceptor {
Request
.
Builder
builder
=
chain
.
request
().
newBuilder
();
LogUtils
.
d
(
TAG
,
"android_id: "
+
AppInfoUtils
.
getAndroidID
(
LibConfig
.
getContext
()));
builder
.
addHeader
(
"X-REFERRER"
,
PreferencesManager
.
get
().
getInstallReferrer
())
.
addHeader
(
"X-REFERRER-SDK"
,
PreferencesManager
.
get
().
getInstallReferrer
())
.
addHeader
(
"X-REFERRER-SDK"
,
PreferencesManager
.
get
().
getInstallReferrer
FromSDK
())
.
addHeader
(
"X-ANDROID-ID"
,
AppInfoUtils
.
getAndroidID
(
LibConfig
.
getContext
()));
//登录后的上传
...
...
src/main/java/tech/starwin/utils/InstallReferrerHelper.java
0 → 100644
View file @
56bb4473
package
tech
.
starwin
.
utils
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
com.android.installreferrer.api.InstallReferrerClient
;
import
com.android.installreferrer.api.InstallReferrerStateListener
;
import
com.android.installreferrer.api.ReferrerDetails
;
public
class
InstallReferrerHelper
{
public
static
void
refershInstallReferrer
(
Context
context
)
{
try
{
final
InstallReferrerClient
installReferrerClient
=
InstallReferrerClient
.
newBuilder
(
context
).
build
();
installReferrerClient
.
startConnection
(
new
InstallReferrerStateListener
()
{
@Override
public
void
onInstallReferrerSetupFinished
(
int
responseCode
)
{
switch
(
responseCode
)
{
case
InstallReferrerClient
.
InstallReferrerResponse
.
OK
:
// Connection established, get referrer
if
(
installReferrerClient
!=
null
)
{
try
{
ReferrerDetails
response
=
installReferrerClient
.
getInstallReferrer
();
String
referrer
=
response
.
getInstallReferrer
();
if
(!
TextUtils
.
isEmpty
(
referrer
))
{
PreferencesManager
.
get
().
saveInstallReferrerFromSDK
(
referrer
);
}
installReferrerClient
.
endConnection
();
}
catch
(
Exception
ex
)
{
LogUtils
.
e
(
"InstallReferrerHelper"
,
ex
.
toString
());
}
}
break
;
case
InstallReferrerClient
.
InstallReferrerResponse
.
FEATURE_NOT_SUPPORTED
:
// API not available on the current Play Store app
LogUtils
.
d
(
"InstallReferrerHelper"
,
"FEATURE_NOT_SUPPORTED"
);
break
;
case
InstallReferrerClient
.
InstallReferrerResponse
.
SERVICE_UNAVAILABLE
:
// Connection could not be established
LogUtils
.
d
(
"InstallReferrerHelper"
,
"SERVICE_UNAVAILABLE"
);
break
;
}
}
@Override
public
void
onInstallReferrerServiceDisconnected
()
{
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
});
}
catch
(
Exception
ex
)
{
// LogUtil.e(ex);
LogUtils
.
e
(
"InstallReferrerHelper"
,
ex
.
toString
());
}
}
}
src/main/java/tech/starwin/utils/PreferencesManager.java
View file @
56bb4473
...
...
@@ -161,14 +161,34 @@ public class PreferencesManager {
saveData
(
"session_id"
,
sessionId
);
}
/**
* 取出上传用户数据时使用的sessionId
*/
public
String
getSessionId
()
{
return
getString
(
"session_id"
,
""
);
}
/**
* 保存上传用户数据时使用的sessionId
*/
public
void
saveDeviceUUID
(
String
uuid
)
{
saveData
(
"device_uuid"
,
uuid
);
}
public
String
getDeviceUUID
()
{
return
getString
(
"device_uuid"
,
""
);
}
/**
* 保存上传用户数据时使用的sessionId
*/
public
void
saveInstallReferrerFromSDK
(
String
referrer
)
{
saveData
(
"sdk_install_referrer"
,
referrer
);
}
public
String
getInstallReferrerFromSDK
()
{
return
getString
(
"sdk_install_referrer"
,
""
);
}
/**
* 更新政策 是否同意 状态
*/
public
void
setPolicyStatus
(
boolean
isAgreed
)
{
...
...
src/main/java/tech/starwin/utils/context_utils/AppInfoUtils.java
View file @
56bb4473
...
...
@@ -10,6 +10,10 @@ import android.support.v4.app.ActivityCompat;
import
android.telephony.TelephonyManager
;
import
android.text.TextUtils
;
import
java.util.UUID
;
import
tech.starwin.utils.PreferencesManager
;
/**
* Created by SiKang on 2018/12/10.
*/
...
...
@@ -34,8 +38,17 @@ public class AppInfoUtils {
* 获取AndroidID
*/
public
static
String
getAndroidID
(
Context
context
)
{
return
Settings
.
Secure
.
getString
(
context
.
getContentResolver
(),
Settings
.
Secure
.
ANDROID_ID
);
String
android_id
=
Settings
.
Secure
.
getString
(
context
.
getContentResolver
(),
Settings
.
Secure
.
ANDROID_ID
);
if
(
TextUtils
.
isEmpty
(
android_id
))
{
android_id
=
PreferencesManager
.
get
().
getDeviceUUID
();
if
(
TextUtils
.
isEmpty
(
android_id
))
{
android_id
=
UUID
.
randomUUID
().
toString
();
PreferencesManager
.
get
().
saveDeviceUUID
(
android_id
);
}
}
return
android_id
;
}
/**
* 判断是否存在某个包且可获取入口
...
...
@@ -60,7 +73,7 @@ public class AppInfoUtils {
@SuppressLint
(
"MissingPermission"
)
public
static
String
getPhoneNumber
(
Context
context
)
{
TelephonyManager
telephonyManager
=
(
TelephonyManager
)
context
.
getSystemService
(
Context
.
TELEPHONY_SERVICE
);
String
[]
permissions
=
new
String
[]{
Manifest
.
permission
.
READ_SMS
,
Manifest
.
permission
.
READ_PHONE_STATE
};
String
[]
permissions
=
new
String
[]{
Manifest
.
permission
.
READ_SMS
,
Manifest
.
permission
.
READ_PHONE_STATE
};
if
(
telephonyManager
!=
null
&&
PermissionsHelper
.
isGranted
(
context
,
permissions
))
{
return
telephonyManager
.
getLine1Number
();
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment