Ⅰ android版AprilBeacon使用说明
大小 :936 K
版本 :1.7.5
系统要求 :Android 4.3 及以上
提示:要使用此应用修改参数功能需要AprilBeacon固件版本在2.0及以上
1.beacon列表有序展示
搜索展示你所需要搜索的beacon(即添加到发射器中的 beacon),避免附近beacon过多造成浏览不便,同时支持有序展示
注意:uuid、major、minor三个值相同时 应用认为是同一个beacon 列表只显示一个
2.蓝牙搜索功能
通过蓝牙搜索展示搜索到的BLE设备 如果是beacon将展示beacon的uuid、major、minor、macAddress方便识别对应的beacon 以及对其做相应操作
3.设备详情
通过AprilBeacon可以读取到对应beacon的设备详情 包括电池电量 固件版本等,小提示 如果想要查看beacon的广播频率及发射功率,可以点击左上角修改进入到修改界面看看有没有你想要的
4.修改参数功能
可以对单个beacon参数进行修改,想知道改哪些吗 进来看看你就知道了
1.添加发射器
点击底部导航中的 工具--发射器进入到发射器界面,点击对应项可进行修改 点击垃圾桶图标可进行删除操作 点击右上角添加按钮可进行添加
major、minor为0的话是全匹配,例如 你添加的发射器uuid为12345678-1234-1234-1234-123456789123 major为1 minor为0 那么在beacon列表界面会搜索展示所有uuid为12345678-1234-1234-1234-123456789123 major为1 minor为0-65535的所有beacon
提示: uuid格式为01234567-89ab-cdef-1234-123456789abc major及minor取值范围为0-65535 measuredPower 取之范围为 -255-0 至于名字嘛 嘿嘿 别来什么特殊字符就好啦
2.修改发射器
跟添加一样 入口时在发射器界面 点击你想要修改的项就可以啦
3.修改参数功能
进入界面流程:工具--蓝牙搜索--你要修改的项--修改
点击底部导航中的工具--蓝牙搜索--点击你想要修改的beacon项--进入设备详情界面点击左上角的修改--修改界面 是不是隐藏的挺深的 嗯嗯 不能让人轻易修改 要改的话填完要修改的参数还得要输入密码 默认为 AprilBrother 当然你可以更改密码 密码格式为12位数字与字母组合 区分大小写 不要输错了 改完要记住啊 不然可找不回来了 其中参数跟发射器中一样的 广播频率Advertising Interval 的取值范围是1-100单位是100ms
注意:修改功能只是针对AprilBeacon 并且固件版本在2.0及以上 默认密码为 AprilBrother 注意区分大小写 如果你的固件版本不是2.0及以上 别担心你可以空中升级固件 这里是升级步骤 http://wiki.viewc.com/ibeacons-oad-upgrade-cn.html
4.进入离开通知
点击底部导航设置 进入设置界面 打开开关 你就可以监听到你已经添加到发射器中的beacon了 当你进入beacon广播范围 会有通知提醒你
应用还在不断的改进和完善中 希望你可以提出宝贵的意见!
Ⅱ 为什么爱奇艺缓存到的都是广告
sdcard/Android/data/com.qiyivideo/files/app/player/puma/ad_cache的全部文件删除就没有广告
Ⅲ android中WebView为什么载入不全的网页
oadresource还是什么方法来着。忘记了
楼主我的理解是这样的,必然会调用onfinished。你可以把这个loadresource的状态打印出来,因为你主动停止也是finish
只是没有继续load罢了。看下有没有用。,
不管加载有没有完成
Ⅳ 怎么离线更新android sdk
ü 首先是安装SDK Manager
ü 安装googlo_apis
ü 安装android platform
ü 安装许可证
ü 安装工具
ü 安装文档
ü 安装示例
ü 安装usb驱动
ü 查看安装效果
ü 常见问题补充
1.首先是安装SDKManager
下载完成解压即可:
选中的文件夹是没有的,但若要使开发环境完整,可以手动建立以上文件夹。
接下来下载文件,把这些文件夹填满。
注:本文选择离线安装,速度较快,若要在线安装,则打开“SDK Manager.exe”,自动安装即可。
2.安装googlo_apis
打开下载工具(迅雷等),下载谷歌api的安装包
下载完成后,把这些压缩包解压到第1步中创建的文件夹“add-ons”里:
每个文件独立对应一个android的版本,如api8_r02对应android2.2,api7_01对应android2.1,可参看下图(SDK Manager.exe界面):
解压之后的“add-ons”文件夹:
注:每个API文件不能单独使用,必须配套一个android platform使用,将在第3步中介绍。可以自己不断下载新的api,然后解压到这个文件里。记住:api需要配合相应的android platform使用。
3.安装androidplatform
下载Android开发包
下载完成后,把它们解压到“platforms”文件夹下:
4.安装许可证
下载许可证
下载完成后解压到“market_licensing”文件夹下:
5.安装工具
下载安装工具
说明:这个工具在第1步中的“安装SDK Manager”中已经安装完毕,为了保持最新版本可以不清空这个文件,也即不需要下载这个文件。
如果第1步中下载了最新SDK Manager时,则在eclipse中需要把ADK更新到最新(ADK是Android的Eclipse插件),具体步骤如下:
还是采用离线安装较快:
下载ADK:
找到相关页面中的:
下载后解压出来:
打开Eclipse(示例使用3.6.2版):
点击“Add”选择解压出来的ADT文件夹:
打钩,开始安装,这个过程比较缓慢,请耐心等待。
6.安装文档
下载安装文档。
下载解压到“”文件夹:
7.安装示例
下载安装样例
解压到“samples”文件夹:
8.安装usb驱动
下载USB驱动
下载完解压到“usb_dirver”文件夹:
9.查看安装效果
已经离线安装成功。
10.在Eclipse添加SDK
在点击左边的“Android”,在右边选择SDK Location为SDK Manager的安装路径。
选择完毕,再点击“Reply”:
可以看到许多版本的android:
选择其中一个版本点击“OK”。
问题补充:
问题:打开Eclipse时报错
SDK Platform Tools component is missing
原因是SKT的platforms与ADT的版本上不一致(也可能是工具本身的Bug),可以试着如下处理
换一个版本的SDK Tools
把SDK下的“tools”文件夹清空,把下载下来的tools文件解压到当前文件夹:
或者下载可直接安装的SDK
再把相应的api和platforms复制过去
打开SDK Manager进行在线修复
n此时可能会出现以下问题:
问题:Failed to fetch /android/repository/addons_list.xml
解决办法:
打开文件夹:C:WINDOWSsystem32driversetc
可以复制该路径到我的电脑的地址栏回车快速到达
用记事本打开hosts文件:
在末尾增加一行:
记得保存。
重新打开SDK Manager,刷新,会发现此时自动更新已经可以找到这个文件了。
更新之前先下载,下载之后正常安装即可。
问题:更新时报错
Failed to fetch /android/repository/repository-5.xml
解决办法:
把http改成https,操作如下:
使这一项前面不打勾。
SDK Manager会自动更新或者退出来点击菜单的“Reaload”:
发现已经开始加载:
所有有更新均已经可用,选中直接更新即可。
如:勾选Android 4.0.3
点击Install:
点击Accept并Install:
下载中:
注:这个方法可以反复应用!
问题:打开Eclipse报ADT版本不够高:
更新ADT即可。更新方法参看步骤5。
问题:打开Eclipse时报SDK Toolkit版本不够高。
解决办法:更新SDK。
问题:报错R cannot be resolved to a variable
解决办法:
检查AndroidManifest.xml文件
看里边的package,layout配置文件,strings.xml等的字符串全部书写正确
尤其要注意加了警告的问题,如示例的版本问题:
原来设置为7,现在改为3,即可正常运行,因为此处选择的虚拟机为android 1.5版的,故最小版本不能大于等于7:
Ⅳ 平板里telecom service进程能禁用吗它总是占用缓存
安卓手机如何保持流畅地运行状态?相信玩机多年的人士不会简单随意清理内存,而是会在查杀后台、控制应用自启、管理权限等方面下功夫,从而阻止流氓应用滥用手机有限的内存。
然而,流氓应用之所以有毒瘤之称,正是因为它总能变着法儿地规避上述手段,用户既要忍受它的各种肆意行为,又无法将其彻底清除,拖慢手机运行还耗电真是恨得牙痒。好在,我们还是可以通过别的妙招来解决这个问题,也就是题中所指的“ 禁用服务 ”。
‘ 号称写轮眼的安卓优化神器 ’
比起后台运行的应用,其实你更要留意安卓系统后台中所运行的服务,清理内存可以杀应用却杀不了服务。除系统默认的应用之外,某些如QQ、微信、淘宝等第三方应用也会启用相关服务,或为同步、推送、广告等等。而应用数量打开得多了,不必要的服务也就愈加泛滥。
针对这种应用服务滋生的现象,我们就必须使用专门的工具来禁止。玩机多年的人士一定对“ 禁用服务 ”比较熟悉,不过今天所要介绍的是它的升级款,名为My Android Tool 。
My Android Tools(需要Root权限)
今天介绍的这个安卓系统优化工具,俗称“ 写轮眼 ”,也是名叫“ 禁用服务 ”的升级款。它的牛逼之处在于可让应用服务进入禁止状态,而且它是从根源上对系统设置进行修改,因此设置完成之后卸载应用,也依然是有效的,直到刷固件或者清除数据。
My Android Tools 的基础使用较为简单,只针对系统所运行的服务进行设置。打开程序后可以查询正在运行的服务,然后视情况将其禁止即可。其中,常见的可禁止服务包括“ Push service ”、“ Adservice ”、“ DataSync ”、“ stat service ”,以上这些涉及应用的消息推送、广告、数据同步以及自启动。其他类型的服务是否可以禁止,各位可以在实践中进行尝试。
‘ 禁用服务的进阶使用教程 ’
除了服务之外,My Android Tools还可以禁止安卓系统的其余三大组件,包括Activity(活动)活动、Content Provider(内容提供者)、Broadcast Receiver(广播接收器)。在进阶使用过程中,我们来讲解如何禁止Activity活动。
安卓应用程序里的“ 活动 ”,可以说是应用程序的交互窗口,而在一个应用中可能存在几十上百的活动数量,到底要禁止哪个确实有点让人摸不着头脑。如下图所示,光美图一个应用,活动数量就达到了600多个。
此时,我们就需要借助一款名为“ 当前activity ”(点我下载)的应用来探寻相关进程。它的功能是可以将界面中应用所启动的活动进程以悬浮形式显现出来。那么知道了相关进程的关键字后,如果遇到不必要的活动,便可以到写轮眼中给禁止掉了。
▲激活当前activity应用后,左上角悬浮窗便会显现当前页面的活动进程
举个例子,我个人不几乎不适用微信中的“ 漂流瓶 ”功能,如果我要禁用它,那么按上述方法在启用“ 当前activity ”后打开漂流瓶,悬浮窗口显示出了活动关键字为“ BottleBeachUI ”,记下之后,回到写轮眼中,输入关键字查询找到,将其禁用。
之后再打开微信,尝试打开“ 漂流瓶 ”出现闪退,便说明成功禁止了这项活动。以此类推,用相同方法可以准确禁用掉自己不用的应用活动。
‘ My Android Tools 作者提醒 ’
MyAndroidTools无需后台(但请不要用其他软件刻意阻止)禁用永远有效,除非你把被禁组件的软件卸载。即使卸载了写轮眼,禁用仍然有效。会复活组件的程序除外。软件更新后,可能新增流氓组件,需要根据情况继续禁用。个别软件会重新启用自己的组件,需要用Xposed增强模块:MyAndroidToolsXposed来防止复活!
最后,部落再补充一下Android四大基本组件分别是:
Activity活动、Service服务、Content Provider内容提供者、Broadcast Receiver广播接收器
【Activity活动】Activity是用户和应用程序交互的窗口,一个activity相当于我们实际中的一个网页,当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回到以前打开过的屏幕。activity的生命周期:即“产生、运行、销毁”,但是这其中会调用许多方法onCreate(创建) 、onStart(激活) 、onResume(恢复) 、onPause(暂停) 、onStop(停止) 、onDestroy(销毁) 、onRestart(重启)。
【Service服务】它跟Activity的级别差不多,但不能自己运行,没有用户界面。它能在后台完成长时间运行的操作。比如播放多媒体的时候,用户导航到其它屏幕时,音乐还在后台播放。
【Br oadcastReceiver广播接收器】应用可使用它对外部事件(如当电话呼入时,或数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可启动一个activity或serice来响应它们收到的信息。
【Content Provider内容提供者】实现数据共享,用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式。只有需要在多个应用程序间共享数据时才需要Content Provider。其中,服务是程序能在后台活动的前提。禁用服务能让软件运行时少占内存,在后台时少唤醒cpu。
Ⅵ android中WebView为什么载入不全的网页
网页脚本js运行出错,webView.setWebViewClient用WebViewClient的onPageFinished(WebView view, String url)方法会监听到网页加载完成,如果显示不完整,就应该去找网页怎么写的。
WebViewClient的方法说明
1、public
boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。
2、public
void onReceivedSslError(WebView view, SslErrorHandler handler,
android.net.http.SslError error) {
handler.proceed();
}
重写此方法可以让webview处理https请求。
3、public
boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
return super.shouldOverrideKeyEvent(view, event);
}
}
重写此方法才能够处理在浏览器中的按键事件。
4、
public void onLoadResource(WebView view, String url) {
// TODO Auto-generated method stub
if (DEBUG) {
Log.d(TAG, " onLoadResource ");
}
super.onLoadResource(view, url);
}
在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。
5、
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
if (DEBUG) {
Log.d(TAG, " onPageStarted ");
}
if (url.endsWith(".apk")) {
download(url);//下载处理
}
super.onPageStarted(view, url, favicon);
}
在页面加载开始时调用。
6、public
void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
if (DEBUG) {
Log.d(TAG, " onPageFinished ");
}
super.onPageFinished(view, url);
}
在页面加载结束时调用。
webview介绍的原文如下:A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply display some online content within your Activity. It uses the WebKit rendering engine to display web pages and includes methods to navigate forward and backward through a history, zoom in and out, perform text searches and more.
从上面你应该了解到了基本功能,也就是显示网页。之所以我说webview功能强大是因为它和js的交互非常方便,很简单就可以实现。
Ⅶ 怎么打开第三方应用程序
需求场景:
在自己开发的应用程序里,有个跳转到其他应用的按钮,比如分享到“新浪微博”,当点击这个按钮时,先判断手机中是否有安装“新浪微博”这个程序,有则启动“新浪微博”客户端,否则从指定的URL地址进行下载。
简言之,开启其他应用,包名跳转。
1、从一个应用跳转到其他应用要获取什么信息?
need第三方应用的包名,以及下载链接。
2、如何判断本机是否已经安装了该第三方应用?
(1)首先得到该程序的包名;
别人的应用程序我怎么知道他的包名和类名?
- 通过adb里面看程序装的所有应用
- 写一个遍历程序,获取所有已安装的程序,把包名打印出来,新浪微博的包名中应该会带有sina字眼,如 com.sina.weibo
//获取已经安装apk列表
List<PackageInfo> packList = context.getPackageManager().getInstalledPackages(0);
//获得包名PackageInfo.packageName
(2)然后通过PackageManager判断是否存在该包的程序 。
android的每一个apk的activity的包的名字都是唯一的,所以可以通过判断这个activity所在包的名字来判断是不是该Apk已经安装
例1:
//以twitter程序为例,假设twitter程序包名为“com.twitter.android”。这时候可用以下代码来判断是否被安装。
//QQ客户端的包名是"com.tencent.mobileqq"
PackageInfo packageInfo;//PackageInfo所在包为android.content.pm
try {
packageInfo = this.getPackageManager().getPackageInfo("com.twitter.android", 0);
} catch (NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if(packageInfo ==null){
System.out.println("没有安装");
}else{
System.out.println("已经安装");
}
例2:可以封装到方法里,操作一样,只是把包名作为参数传入,返回值为布尔类型
private boolean isPkgInstalled(String pkgName) {
PackageInfo packageInfo = null;
try {
packageInfo = this.getPackageManager().getPackageInfo(pkgName, 0);
} catch (NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if (packageInfo == null) {
return false;
} else {
return true;
}
3、怎么跳转?
通过隐式intent跳转
例3:PackageManager中有getLaunchIntentForPackage这个方法!
//String pkg代表包名,String download代表下载url
final PackageManager pm = context.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(pkg);
if (null == intent) {//没有获取到intent
if (!TextUtils.isEmpty(downoad)) {//跳转到下载第三方应用界面
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(downoad)));
}
} else {
context.startActivity(intent);
}
例4:在我们自己的程序中调用其他程序时往往要检查手机有没有安装该软件后再做相应操作,如没有安装,用intent将用户引导至android market去下载该程序,如已安装则打开该程序,并传入参数和调用其功能。
//下面介绍怎么判断手机已安装某程序的方法:
private boolean isAvilible(Context context, String packageName){
final PackageManager packageManager = context.getPackageManager();//获取packagemanager
List< packageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名
//从pinfo中将包名字逐一取出,压入pName list中
if(pinfo != null){
for(int i = 0; i < pinfo.size(); i++){
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE
}
//下面是调用该方法进行判断后的逻辑:
//已安装,打开程序,需传入参数包名:"com.skype.android.verizon"
if(isAvilible(this, "com.skype.android.verizon")){
Intent i = new Intent();
ComponentName cn = new ComponentName("com.skype.android.verizon",
"com.skype.android.verizon.SkypeActivity");
i.setComponent(cn);
startActivityForResult(i, RESULT_OK);
}
//未安装,跳转至market下载该程序
else {
Uri uri = Uri.parse("market://details?id=com.skype.android.verizon");//id为包名
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
}
参考链接:http://www.eoeandroid.com/thread-152763-1-1.html?_dsign=2242c74c
4、跳转后呢?
如何在android应用程序中启动其他apk程序,被启动程序退出后返回之前的程序?
//你只需要在A中打开B,并为B设置 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//不做对A的关闭处理finish() 这样就可以了
Intent intent=new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(new ComponentName(objAppClassName, mainActivity));
context.startActivity(intent);
例5:原始跳转方法,要包名和类名(通过ComponentName),后来可以只要包名…
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。
一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
但是更多的时候,我们一般都不知道应用程序的启动Activity的类名,而只知道包名,我们可以通过ResolveInfo类来取得启动Acitivty的类名。
下面是实现代码:
private void openApp(String packageName) {
PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0);
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);
ResolveInfo ri = apps.iterator().next();
if (ri != null ) {
String packageName = ri.activityInfo.packageName;
String className = ri.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
}
}
Ⅷ android里面activity如何把自己的引用传给service,使得service可以直接调用activity的方法
直接传activity 引用肯定是不行的,
最简单的是 用静态全局变量 ,不过不推荐。
所以只能复杂一点 ,不能service可以直接调用activity ,只能传消息给activity ,让activity 执行特定的方法。
就是 service start activity 。
而activity 设置为 single instance ,在newIntent 方法 里面 处理 传入消息。
还有一个方法就是activity 里面定义 一个 内部类 broadcast ,然后 service 调用sendbraoadcast ,
broadcast 再调用 activity 方法。
Ⅸ 手机优酷有米广告请求失败,我是关闭网络以后的缓存好的视频,如何取消这个东西(我还是优酷会员)
只需要打开你手机缓存广告的位置,把广告视频删除即可。方法依次打开手机的文件管理(不同牌子的手机叫的可能不一样,反正就是处理手机文件的)—内存设备或叫本机存储(若你设置过缓存视频优先存储到外置内存卡的就是打开SD卡)—Android—date—com.sohu.tv(不同的视频软件此名称不一样,此以搜狐为例子)—files—OADCACHE和LOCALCACHE,然后把里面的所有文件(都是可恶的广告小视频,不放心的话可以点开选择视频播放一下即可确定)全部删除,OK,万事大吉了,重新打开搜狐视频,再看你缓存好的视频,万恶广告没有了。=_=,喜欢请采纳!
Ⅹ 安卓给猫玩的游戏有吗
#猫咪游戏 app:peppy game for cats
cat piano手机版adrioad22.6M2017-11-14v1.0.3 安卓版立即下载
catpiano游戏是一款钢琴弹奏游戏,玩家们根据不同的音调来吸引小猫,猫咪还会根据自己的喜爱,来弹奏钢琴,是非常适合小