小编edo*_*oni的帖子

如何通过BLE(蓝牙低功耗)将Android设备连接到iOS设备

我正在尝试制作一个使用Android 新蓝牙低功耗API的应用程序.为此,我开始使用API等级为18的BLE样本.

当我读到Android无法充当外围设备时,我将Android手机置于中央模式,扫描周围的BLE设备.为此,我使用模拟心脏传感器的北欧平台进行了一些测试.一切都以完美的方式运作!

在此之后,我尝试选择iPhone(iOS 7 beta 4)并将其置于外围设备中并模拟心率传感器作为之前的测试.Android应用程序可以看到设备并连接到它.但是在连接激活后,2个设备会在3-4秒内断开连接.除此之外,当我在Android端调用discoverServices()时,不会触发回调!在某些情况下,即使iOS蓝牙芯片处于关闭状态,Android设备也会收到"已连接"事件.这很奇怪.为了证明这一点,我将Nordic Board置于中央模式,并且我能够正确连接到iOS设备,没有任何问题.

会是什么呢?Android或iOS有一些限制,不允许从Android连接到iOS或反之亦然?

谢谢.

编辑:经过一些艰难的测试,我在AOSP页面上提出了一个问题.可以在这里查看

android ios core-bluetooth bluetooth-lowenergy android-4.3-jelly-bean

82
推荐指数
2
解决办法
2万
查看次数

展开/折叠棒棒糖工具栏动画(电报应用程序)

我正在试图弄清楚工具栏的展开/折叠动画是如何完成的.如果您查看Telegram应用程序设置,您将看到列表视图和工具栏.向下滚动时,工具栏会折叠,向上滚动时会展开.还有配置文件pic和FAB的动画.有人有任何线索吗?你认为他们建立了所有的动画吗?也许我错过了新API或支持库中的一些东西.

我注意到Google日历应用程序中的相同行为,当您打开Spinner时(我不认为它是一个微调器,但它看起来像):工具栏展开,当您向上滚动时,它会崩溃.

只是为了澄清:我不需要QuickReturn方法.我知道可能Telegram应用程序正在使用类似的东西.我需要的确切方法是Google日历应用效果.我试过了

android:animateLayoutChanges="true"
Run Code Online (Sandbox Code Playgroud)

并且expand方法运行良好.但显然,如果我向上滚动ListView,工具栏不会崩溃.

我也想过添加一个,GestureListener但我想知道是否有任何API或更简单的方法来实现这一点.

如果没有,我想我会跟着GestureListener.希望能有一个平滑的动画效果.

谢谢!

android android-animation android-toolbar android-6.0-marshmallow android-7.0-nougat

72
推荐指数
3
解决办法
8万
查看次数

带有ListView和自定义标头的NavigationDrawer片段

我遇到了问题,我无法解决.在我的应用程序中,我有一个导航抽屉定义如下:

activity_main.xml中

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<!-- As the main content view, the view below consumes the entire
     space available using match_parent in both dimensions. -->
<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<!-- android:layout_gravity="start" tells DrawerLayout to treat
     this as a sliding drawer on the left side for left-to-right
     languages and on the right side for right-to-left languages.
     If you're not building against API 17 or higher, use
     android:layout_gravity="left" instead. -->
<!-- The drawer is given a fixed …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-listview android-fragments android-navigation

7
推荐指数
1
解决办法
1993
查看次数

android在BroadcastReceiver中获取进程名称

我遇到了这个麻烦,我无法理解.我google了很多,但没有给我一个答案.

我解释一下:
我有一个BroadCastReceiver,它在不同的进程中运行(android:process=":anotherProcess")

我想在BroadcastReceiver中获取此进程名称.

例如,在这种情况下,它可能是:com.my.package:anotherProcess

可能吗?我该怎么做?

android process broadcastreceiver

5
推荐指数
1
解决办法
1442
查看次数

使用Gradle覆盖库项目清单中的applicatoinID

我有一个引用库项目的主项目.它们都是用Gradle编译的.

这是主项目gradle文件的defaultConfig:

defaultConfig {
    applicationId "com.example.app"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 2
    versionName "1.0"
}
Run Code Online (Sandbox Code Playgroud)

这是库项目gradle文件的defaultConfig:

defaultConfig {
    minSdkVersion 11
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我没有在库中声明任何applicationId.

我在我的项目中定义了一个权限,如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.library">

<permission android:name="${applicationId}.permission.C2D_MESSAGE"
            android:protectionLevel="signature" />
Run Code Online (Sandbox Code Playgroud)

构建项目时,applicationId将替换为com.example.library(库包名称).这不是我想要的.我想用com.example.app替换它,因为它是我的应用程序的applicationId.

如果我将$ {applicationID}占位符放在app的清单文件中,一切正常.

有谁知道这是否可以实现以及如何实现?

android android-package-managers android-gradle-plugin

5
推荐指数
1
解决办法
1469
查看次数