- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在测试我的应用程序并且处于 Alpha 模式。我的应用程序已获批准,我可以在 Play 商店中以 alpha 模式找到它。但是,我的应用程序的“磨损”部分不会自动安装到磨损中。
我的 Wear 应用目前功能很少,因此“选择加入”Wear 总是被拒绝。我仍然希望能够为我的 alpha 用户打包我的 minimal wear 应用程序,但它似乎不起作用。有什么想法可以自动安装应用程序的可穿戴部分吗?
这是我当前的文件:
/build.gradle
// Used in 'mobile' and 'wear' submodules
def versionMajor() { 0 }
def versionMinor() { 0 }
def versionPatch() { 8 }
def gitVersion() {
def process = "git rev-list master --first-parent --count".execute()
return process.text.toInteger()
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
/mobile/build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.kamil.coach"
minSdkVersion 19
targetSdkVersion 22
versionCode gitVersion()
versionName "${versionMajor()}.${versionMinor()}.${versionPatch()}"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
exclude 'APK META-INF/NOTICE.txt'
exclude 'APK META-INF/notice.txt'
}
}
if(project.hasProperty("MyProject.signing") && new File(project.property("MyProject.signing") + ".gradle").exists()) {
println "mobile applying gradle file"
apply from: project.property("MyProject.signing") + ".gradle";
} else {
println "mobile not applying gradle file"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':core')
wearApp project(':wear')
compile "com.android.support:appcompat-v7:22.1.0"
compile 'com.google.android.gms:play-services:7.3.0'
compile 'com.google.android.support:wearable:1.1.0'
compile 'com.google.android.gms:play-services-wearable:7.3.0'
compile 'org.apache.commons:commons-lang3:3.0'
compile 'joda-time:joda-time:2.7'
compile 'org.ocpsoft.prettytime:prettytime:4.0.0.Final'
compile 'com.uservoice:uservoice-android-sdk:+'
compile(name:'cloud-release', ext:'aar')
compile(name:'auth-release', ext:'aar')
compile(name:'core-release', ext:'aar')
}
repositories {
flatDir {
dirs 'libs'
}
}
/wear/build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.kamil.coach"
minSdkVersion 20
targetSdkVersion 22
versionCode gitVersion()
versionName "${versionMajor()}.${versionMinor()}.${versionPatch()}"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
exclude 'APK META-INF/NOTICE.txt'
exclude 'APK META-INF/notice.txt'
}
}
if(project.hasProperty("MyProject.signing") && new File(project.property("MyProject.signing") + ".gradle").exists()) {
println "wear applying gradle file"
apply from: project.property("MyProject.signing") + ".gradle";
} else {
println "wear not applying gradle file"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':core')
compile 'com.google.android.support:wearable:1.1.0'
compile 'com.google.android.gms:play-services-wearable:7.3.0'
compile 'org.apache.commons:commons-lang3:3.0'
compile(name:'cloud-release', ext:'aar')
compile(name:'auth-release', ext:'aar')
compile(name:'core-release', ext:'aar')
}
repositories {
flatDir {
dirs 'libs'
}
}
/core/build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 17
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.squareup.retrofit:retrofit:1.9.+'
}
/mobile/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.kamil.coach"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-feature android:name="android.hardware.sensor.accelerometer"/>
<uses-feature android:name="android.hardware.sensor.gyroscope"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:name=".mobile.MobileKamilApplication"
android:allowBackup="true"
android:icon="@drawable/launcher_icon"
android:label="@string/app_name"
android:theme="@style/CoachTheme"
>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
.
.
.
</application>
</manifest>
/wear/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.kamil.coach"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-feature android:name="android.hardware.type.watch"/>
<uses-feature android:name="android.hardware.sensor.accelerometer"/>
<uses-feature android:name="android.hardware.sensor.gyroscope"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application
android:name="com.core.KamilApplication"
android:allowBackup="true"
android:icon="@drawable/launcher_icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.DeviceDefault"
>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
.
.
.
.
</application>
</manifest>
最佳答案
穿戴应用必须打包在主应用中,而不是单独分发。您只需像往常一样将移动应用的发布 apk 上传到 Play 商店 alpha channel 。
两个应用程序必须具有相同的包名,使用相同的 key 签名,并且在移动 gradle 依赖项中,您必须包含可穿戴项目
wearApp project(':wearable')
有关详细信息,请参阅完整的 Google 文档。 http://developer.android.com/training/wearables/apps/packaging.html
关于android - 如何将我的 Android Wear 分发给 Google Play 商店中的 alpha/beta 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30517879/
我一直在 list 中使用以下意图过滤器,一切正常: 这已被弃用,所以我尝试使用: 我可以正常接收消息,但 onPeerConnected 现在永远不会被调用。 public class
我一直在 list 中使用以下意图过滤器,一切正常: 这已被弃用,所以我尝试使用: 我可以正常接收消息,但 onPeerConnected 现在永远不会被调用。 public class
最新的Android Wear更新随附对ChannelApi的支持,可用于向可穿戴设备或手持设备发送文件或从可穿戴设备或手持设备发送文件。问题是我找不到有关如何使用此功能的单个示例。 Android示
我已经根据官方 API 更新了我的 Android Wear 表盘,总体来说进展顺利。然而,我坚持的一件事是从 Android Wear 应用程序中启动配套(手持)配置事件。我只是无法在 AW 应用程
我在 Moto 360 上启用了蓝牙调试并在我的 Nexus4 上启用了 Android Wear 应用程序。 状态显示目标:已断开 从我的电脑转发端口显示状态主机将更改为已连接,但目标状态仍保持断开
Android Wear 生态系统似乎是围绕用户将与之交互然后关闭的快速任务构建的。这对大多数应用程序都很有效,但是对于一个涵盖长时间运行的任务并且在 watch 休眠时不应自动关闭的应用程序呢? 我
我正在 Android 中开发一个应用程序以及 Android Wear 支持。在查看来自 https://developer.android.com/training/building-wearab
我打开了 USB 调试,我显示目标已连接,但我无法连接主机。 当我在我的 PC 上运行以下命令时,我得到指示该命令未完成的输出。 adb forward tcp:4444 localabstract:
据我所知,有两种方法可以为 Android Wear 中的通知设置背景图像。为了记录,两者都以: Bitmap bitmap; Notification.Builder bob = new
我正在编写一个自定义 Android Wear 应用程序,该应用程序应该向连接的主机设备(电话)发送一次性消息。通过 API 挖掘,我发现以下教程应该可以很好地工作:http://developer.
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试将文件从我的 Google Wear 发送到我的 Nexus 5。我已经阅读了一些教程并想出了以下代码,但我的手机没有收到文件。 手机: private GoogleApiClient mG
我正在尝试为 Google Wear 设置我的开发环境并遵循了 Google 的 instructions但是一旦我设置了端口转发 (adb -d forward tcp:5601 tcp:5601)
在开发 Android Wear 表盘时,如何检测屏幕是否是圆形且有下巴(又名扁平轮胎带),如 Moto 360?我尝试了 onSurfaceChanged,但宽度和高度是相同的。 我在有下巴的模拟器
我正在为 Android Wear 编写应用程序,我需要在关闭应用程序时实现与 Android Wear 上的 Google map 应用程序类似的行为。 通常,“Swipe-To-Dismiss”手
我正在开发一款适用于 Android Wear 的应用程序,它可以在手机上启动一项 Activity 。一切都很好,但我不想依赖手机上不断运行的后台服务来接收这条消息。理想情况下,我会让 Wearab
我尝试通过启动语音命令启动我的穿戴应用程序。我按照文档 Adding Voice Capabilities .但是,当我尝试通过说(OK Google)“启动我的应用程序”来启动应用程序时,我会收到与
当我使用数字表冠时,我的列表没有滚动 这就是我所做的; public class MainActivity extends Activity { @Override protecte
根据指南: https://developer.android.com/design/wear/patterns.html#Continuing “在必须使用手机的情况下,一旦点击操作按钮并在手机上打
有人可以分享有关使用 Android Wear 使用手腕运动(与触摸屏上的滑动运动相反)进行手势检测的信息吗? API 中有对此的官方支持吗?如果没有,您认为可以通过自定义 ROM 启用此功能吗?考虑
我是一名优秀的程序员,十分优秀!