我的应用程序的主要活动有一个导航抽屉,以这种方式在XML中实例化:
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/application_drawer"
android:background="@color/white"/>
Run Code Online (Sandbox Code Playgroud)
现在,导航抽屉的菜单项如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/login"
android:icon="@drawable/ic_action_person"
android:title="@string/login"/>
<item
android:id="@+id/settings"
android:icon="@drawable/ic_action_settings"
android:title="@string/settings"/>
<item
android:id="@+id/terms"
android:icon="@drawable/ic_action_about"
android:title="@string/terms_and_conditions_menu"/>
<item
android:id="@+id/about"
android:icon="@drawable/ic_action_about"
android:title="@string/info_hotelsclick"/>
</group>
Run Code Online (Sandbox Code Playgroud)
我想做的是在某些条件下动态更改第一项(也可能是其他项).例如,我想在用户登录后用"注销"更改"登录"条目;-)
我怎样才能做到这一点?我设法以这种方式将一个项目添加到抽屉
Menu menu = navigationView.getMenu();
menu.add("Test");
Run Code Online (Sandbox Code Playgroud)
但这听起来对我不好,我很确定必须有一个更清洁的方式.
......但是呢?
我想在我的Android项目中简单地检索设备位置,为了做到这一点,我使用了play-services方法:
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder( MainSearchActivity.this )
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected( Bundle bundle ){
Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if( location == null ){
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
lastLocation = location;
}
});
}
}
@Override
public void onConnectionSuspended( int i ){
}
})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed( ConnectionResult connectionResult ){
if( connectionResult.hasResolution() ){
try {
// Start an Activity that tries to …Run Code Online (Sandbox Code Playgroud) 我的问题非常类似于使用Google Services 3.0.0丢失api_key /当前密钥,但复杂程度更高.
我今天早上将我的应用更新到com.google.gms:google-services:3.0.0以及所有play-services 9.0.0依赖项
compile 'com.google.android.gms:play-services-analytics:9.0.0'
compile 'com.google.android.gms:play-services-ads:9.0.0'
compile 'com.google.android.gms:play-services-identity:9.0.0'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
Run Code Online (Sandbox Code Playgroud)
现在我得到了臭名昭着的错误
错误:任务':hotelsclick:processDebugGoogleServices'的执行失败.>缺少api_key/current_key对象
这似乎是由于google-services.json文件中缺少API密钥(所以我被告知).我从https://developers.google.com/cloud-messaging/android/client#get-config获取了一个新的API密钥,并在其中找到了以下字段.
"api_key": [],
Run Code Online (Sandbox Code Playgroud)
我想我应该把我的Google Maps API密钥放在那里,但是这里出现了我遇到的双重问题:
1-如果我尝试将密钥放在该字段内,则不起作用.我试过两个
"api_key": [{ "current_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE" }],
Run Code Online (Sandbox Code Playgroud)
和
"api_key": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE"],
Run Code Online (Sandbox Code Playgroud)
错误保持不变.
2-我一直在使用gradle来使用动态建筑.我将以下内容放在我的模块build.gradle中:
buildTypes {
release {
minifyEnabled true
shrinkResources true
debuggable false
resValue "string", "google_maps_api_key", "ABCDEFGHILMNO... my maps release API key"
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
zipAlignEnabled true
}
debug {
resValue "string", "google_maps_api_key", "ZNTMRNCDNR... my google maps debug API key"
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
} …Run Code Online (Sandbox Code Playgroud) android google-maps google-play-services android-gradle-plugin
我们正在尝试使用Apple Universal Links在iOS上实现应用程序索引(我正在查看https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
在"创建和上传关联文件"部分中,我看到我可以将索引限制为特定页面,这很好.
我想将索引限制为https://www.mywebsite.com?parameter=something,我该怎么办?
我在考虑这样的事情:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "MYID",
"paths":[ "*?parameter=*" ]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
你觉得它可行吗?我无法测试它,因为获取授权在网站根目录上上传文件需要时间,这就是为什么我问你是否认为它可以工作,我想上传文件一次,如果我能够.
谢谢
我正在使用google-analytics SDK衡量我的Android应用结帐效果.我创建了一个Wrapper,我用它来发送命中(它有效)和异常(它也可以).我无法使其与电子商务数据一起使用.
为了发送电子商务数据,我创建了一个产品和一个productAction
Product product = new Product()
.setId(ID)
.setCategory(category)
.setBrand(brandID)
.setCustomDimension(1, typology)
.setCustomDimension(2, currency)
.setPrice(getTotal())
.setQuantity(1);
// Add the step number and additional info about the checkout to the action.
ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
.setCheckoutStep(4)
.setCheckoutOptions("Perform payment");
Run Code Online (Sandbox Code Playgroud)
然后
sendEcommerceCheckoutStep(product, productAction, "performPayment", getApplicationContext())
所述方法的主体是
public void sendEcommerceCheckoutStep(Product product, ProductAction productAction, String checkoutStepName, Context context) {
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
.addProduct(product)
.setProductAction(productAction)
.addImpression(product, checkoutStepName);
mTracker.setScreenName(checkoutStepName);
mTracker.send(builder.build());
mTracker.setScreenName(null);
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望数据流经分析(确实如此,我检查了adb日志),但我无法在分析Web界面中看到它.
这是我在分析网络界面上看到的:
正如您所看到的,唯一获得数据的列是"Cart-to-Detail Rate".但是,如果我在任何其他专栏中没有任何数据,我如何才能获得购物车到详细信息?
这就是"产品性能"屏幕.这是"产品列表性能":
所有其他列也是0.为什么它列出了"添加到购物车"的操作而不是其他操作?
我注意到我的Android应用程序没有正确提供我的谷歌分析电子商务数据,而所有其他分析数据(屏幕视图,例外)都正确发布.
我已经开了一个关于这个主题的赏金但是进一步挖掘我在logcat中发现了一些错误:
获取广告客户ID时出错:java.io.IOException:java.util.concurrent.TimeoutException:等待服务连接超时
成功绑定到服务但从未获得onServiceConnected回调
我怀疑这些错误是由于某些不能在游戏服务级别工作的原因,这就是为什么我要打开一个新线程.
由于上述错误在点击发布之前出现在日志中,我的理论是我的电子商务数据因为它们而未正确发布.这里有人见过这样的东西吗?我可以尝试什么来解决它?
请注意我正在使用(取自build.gradle)
compile 'com.google.android.gms:play-services-analytics:9.4.0'
compile 'com.google.android.gms:play-services-ads:9.4.0'
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
和gradle插件
classpath 'com.android.tools.build:gradle:2.2.0-beta1'
Run Code Online (Sandbox Code Playgroud) java android google-analytics google-play-services google-analytics-firebase
我正在配置我的EC2服务器.我设法安装php,laravel等(虽然有点痛苦).现在我
但是仍然无法从远程登录,我明白了
ERROR 2003 (HY000): Can't connect to MySQL server on 'yyz.yyz.yyz.yyz' (110)
Run Code Online (Sandbox Code Playgroud)
我能做什么?我没有任何排序的iptables,一切都应该简单明了......但它不是:-(
我正在尝试使用此字符串从亚马逊网络外部进行连接
mysql -u myuser -pmypwd -h yyz.yyz.yyz.yyz -D myschema
Run Code Online (Sandbox Code Playgroud)
请注意,从服务器本身我可以使用连接
mysql -u myuser -p -h localhost -P 3306 -D myschema
Run Code Online (Sandbox Code Playgroud)
谢谢Marco
PS供参考,这是我的MariaDB用户
+---------------------------------------------+-----------+
| host | user |
+---------------------------------------------+-----------+
| % | myuser |
| 127.0.0.1 | root |
| ::1 | root |
| ip-yyz-yy-zz-yyz.us-west-2.compute.internal | root |
| localhost | root |
| localhost | myuser | …Run Code Online (Sandbox Code Playgroud) 我正在实现应用程序索引,我想我错过了什么,但我不知道是什么.
按照指南,我将我的intent-filters添加到应用程序并实现了我的活动所需的内容.
我的应用程序的包是com.towers.hotelsclick和相关的网站(我还没有把链接rel元标记,因为我只是测试)是www.hotelsclick.com
我在指南中看到了以下intent-filter示例
<activity
android:name="com.example.android.PetstoreActivity"
android:label="@string/title_petstore">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="www.examplepetstore.com" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
所以我用这种方式写了我的:
<activity
android:name=".ActivityForAppIndexing"
android:label="@string/title_activity"
android:screenOrientation="portrait" >
<intent-filter android:label="@string/app_name">
<data android:scheme="android-app"
android:host="com.package.myappname" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="www.mywebsite.com" />
<data android:scheme="https"
android:host="www.mywebsite.com" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
此外,我编写了一个内容提供程序来解析URI
<provider
android:name=".contentproviders.HotelDetailsContentProvider"
android:authorities="com.towers.hotelsclick" >
</provider>
Run Code Online (Sandbox Code Playgroud)
应该如下映射URI:
private static final String BASE_PATH = "https";
private static final String AUTHORITY …Run Code Online (Sandbox Code Playgroud) android uri deep-linking android-app-indexing google-app-indexing
在最近几天,我的Linux Chrome版本(版本53.0.2785.116 64位)不记得我的谷歌帐户.每次我关闭电脑(而不是每次我关闭铬,我真的需要注销并再次登录)我再次登录所有帐户.右上角带有我姓名的按钮带有感叹号,如果我进入设置,我会看到"帐户登录详细信息已过期.再次登录"消息
现在,我真的不知道这里发生了什么.我在办公室使用chrome没有任何问题,在我的谷歌帐户中看不出任何错误.此外,我尝试删除--purge google-chrome并删除整个.config/google-chrome文件夹.重新安装chrome,登录,重新启动计算机,同样的问题.
现在我正在使用Firefox而没有任何问题,但是...我的意思是,无法使用我想要的浏览器令人沮丧.
你知道这种奇怪行为的原因是什么,以及如何解决这个问题?
谢谢Marco
PS似乎它可能是一个问题,因为到期令牌时间非常短(现在是9月29日,21:45.它将在25分钟后到期!)
一旦我重新启动
我注意到Visual Studio Code中有一个漂亮的功能(不知道是否归因于GitLens扩展):当我编辑一行时,我可以看到该行的GIT批注,包括作者,上次编辑时间和提交消息。
这很酷,因为它不需要占用您在Android Studio中启用的“注释”窗格所需的大量空间。快速,简单,直接。
我的问题是:据您所知,是否有任何Android Studio扩展允许类似的可视化?
谢谢马可
android ×7
amazon ×1
amazon-ec2 ×1
annotations ×1
deep-linking ×1
geolocation ×1
google-maps ×1
ios ×1
java ×1
location ×1
mariadb ×1
mysql ×1
ubuntu ×1
uri ×1