项目笔记
来源:互联网 发布:linux配置ip地址命令 编辑:程序博客网 时间:2024/05/29 03:16
项目中的笔记:
1、获取手机IP地址
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if(info == null){
Toast.makeText(DefineViewActivity.this,"手机没有联网",Toast.LENGTH_SHORT).show();
}else{
if(info.isAvailable()){
if(info.getType() == ConnectivityManager.TYPE_MOBILE){
try {
for(Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();en.hasMoreElements();){
NetworkInterface networkInterface = en.nextElement();
for(Enumeration<InetAddress> inetAddressEnumeration = networkInterface.getInetAddresses(); inetAddressEnumeration.hasMoreElements();){
InetAddress address = inetAddressEnumeration.nextElement();
if(!address.isLoopbackAddress()){
Log.i("wanlijun","mobile:"+address.getHostAddress().toString());
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}else if(info.getType() == ConnectivityManager.TYPE_WIFI){
WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(WIFI_SERVICE);
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);
}else{
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
Log.i("wanlijun","wifi:"+intToIp(ipAddress));
}
}
}else{
Toast.makeText(DefineViewActivity.this,"网络不可用",Toast.LENGTH_SHORT).show();
}
}
2、腾讯浏览服务X5内核集成遇到的问题
X5内核解决的问题:原生WebView兼容性差,加载速度慢,内存泄露,独立小窗播放视频,全屏播放H5视频
X5内核集成步骤:
第一步:下载SDK和SDK接入示例
第二步:导入jar包
第三步:libs下新建armeabi文件夹,加入liblbs.so文件
第四步:在module下的build.gradle文件里加上如下
android{
defaultConfig{
ndk{
abiFilters "armeabi","armeabi-v7a","x86","mips"
}
}
}
第五步:在自定义Application类里面加入
//第一次安装集成该SDK的版本必须预热
//开启额外进程 服务 预加载X5内核, 此操作必须在主进程调起X5内核前进行,否则将不会实现预加载
//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
// TODO Auto-generated method stub
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
Log.d("app", " onViewInitFinished is " + arg0);
}
@Override
public void onCoreInitFinished() {
// TODO Auto-generated method stub
}
};
//x5内核初始化接口
QbSdk.initX5Environment(getApplicationContext(), cb);
第六步:引用(加载本地HTML)
<com.tencent.smtt.sdk.WebView
android:id="@+id/tencent_webview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.tencent.smtt.sdk.WebView>
tencent_webview = (WebView)findViewById(R.id.tencent_webview);
tencent_webview.getSettings().setJavaScriptEnabled(true);
tencent_webview.getSettings().setAppCacheEnabled(true);
tencent_webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
tencent_webview.getSettings().setDomStorageEnabled(true);
tencent_webview.loadUrl("file:///android_asset/ytb/ytObjInfo.html");
项目中遇到的问题:
1.APP第一次安装的时候打开X5内核的WebView控件会出现短暂的黑屏(HTC A9w android 7.0版本)
原因:X5内核没有进行预加载
解决:加入上面第五步
2.TBS:initX5Core -- loadSucc: false;
exception: java.lang.reflect.InvocationTargetException;
cause: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.tencent.mm/app_tbs/core_share/libmttwebview.so" is 32-bit instead of 64-bit
原因:X5内核只有32位的so文件,没有提供64位so文件
解决:官方文档提示把32位的so库直接放到64位的文件夹中当64位使用
或者只在libs/armeabi文件夹中加入liblbs.so文件
在build.gradle文件里面加入ndk{abiFilters "armeabi","armeabi-v7a","x86","mips"}
在build.gradle文件里加入
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs'](哈哈,加这句)
}
1、获取手机IP地址
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if(info == null){
Toast.makeText(DefineViewActivity.this,"手机没有联网",Toast.LENGTH_SHORT).show();
}else{
if(info.isAvailable()){
if(info.getType() == ConnectivityManager.TYPE_MOBILE){
try {
for(Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();en.hasMoreElements();){
NetworkInterface networkInterface = en.nextElement();
for(Enumeration<InetAddress> inetAddressEnumeration = networkInterface.getInetAddresses(); inetAddressEnumeration.hasMoreElements();){
InetAddress address = inetAddressEnumeration.nextElement();
if(!address.isLoopbackAddress()){
Log.i("wanlijun","mobile:"+address.getHostAddress().toString());
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}else if(info.getType() == ConnectivityManager.TYPE_WIFI){
WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(WIFI_SERVICE);
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);
}else{
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
Log.i("wanlijun","wifi:"+intToIp(ipAddress));
}
}
}else{
Toast.makeText(DefineViewActivity.this,"网络不可用",Toast.LENGTH_SHORT).show();
}
}
2、腾讯浏览服务X5内核集成遇到的问题
X5内核解决的问题:原生WebView兼容性差,加载速度慢,内存泄露,独立小窗播放视频,全屏播放H5视频
X5内核集成步骤:
第一步:下载SDK和SDK接入示例
第二步:导入jar包
第三步:libs下新建armeabi文件夹,加入liblbs.so文件
第四步:在module下的build.gradle文件里加上如下
android{
defaultConfig{
ndk{
abiFilters "armeabi","armeabi-v7a","x86","mips"
}
}
}
第五步:在自定义Application类里面加入
//第一次安装集成该SDK的版本必须预热
//开启额外进程 服务 预加载X5内核, 此操作必须在主进程调起X5内核前进行,否则将不会实现预加载
//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
// TODO Auto-generated method stub
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
Log.d("app", " onViewInitFinished is " + arg0);
}
@Override
public void onCoreInitFinished() {
// TODO Auto-generated method stub
}
};
//x5内核初始化接口
QbSdk.initX5Environment(getApplicationContext(), cb);
第六步:引用(加载本地HTML)
<com.tencent.smtt.sdk.WebView
android:id="@+id/tencent_webview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.tencent.smtt.sdk.WebView>
tencent_webview = (WebView)findViewById(R.id.tencent_webview);
tencent_webview.getSettings().setJavaScriptEnabled(true);
tencent_webview.getSettings().setAppCacheEnabled(true);
tencent_webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
tencent_webview.getSettings().setDomStorageEnabled(true);
tencent_webview.loadUrl("file:///android_asset/ytb/ytObjInfo.html");
项目中遇到的问题:
1.APP第一次安装的时候打开X5内核的WebView控件会出现短暂的黑屏(HTC A9w android 7.0版本)
原因:X5内核没有进行预加载
解决:加入上面第五步
2.TBS:initX5Core -- loadSucc: false;
exception: java.lang.reflect.InvocationTargetException;
cause: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.tencent.mm/app_tbs/core_share/libmttwebview.so" is 32-bit instead of 64-bit
原因:X5内核只有32位的so文件,没有提供64位so文件
解决:官方文档提示把32位的so库直接放到64位的文件夹中当64位使用
或者只在libs/armeabi文件夹中加入liblbs.so文件
在build.gradle文件里面加入ndk{abiFilters "armeabi","armeabi-v7a","x86","mips"}
在build.gradle文件里加入
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs'](哈哈,加这句)
}
阅读全文
0 0
- 项目笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目 笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目笔记
- 项目管理阅读笔记
- [J2EE]项目艰辛笔记
- 信息系统项目管理笔记
- 对日项目日语笔记
- Truffle 4.0、Geth 1.7.2、TestRPC在私有链上搭建智能合约
- C# 将二进制数据转换成BASE64字符串的方法
- bootstrap3中轮播图修改时间
- 微信分享遇到的坑
- linux下安装nginx步骤
- 项目笔记
- [老贴重发]EXT:指定树控件TreePanel 展开到第几层
- 【转】Oracle XA JTA事务报错 不支持XA事务
- 数据库建表的十四个技巧
- JSONKit在项目中使用设置(ARC与方法更新)
- 笔记7
- PL/SQL创建表序列
- weex更新方案探索(四)
- 欢迎使用CSDN-markdown编辑器