我正在尝试为我们的组织访问新的 Android Management API,但在访问 API 时遇到问题。通过 API 浏览器访问 API 时,一切运行正常。为了在我们的服务器上运行它,我在 Google 云控制台中创建了一个新项目,并在那里创建了一个服务帐户。我下载了密钥并使用它在我的机器上进行本地测试。然而,在第一次 signupUrl 调用时,我收到 403 错误,指出:“调用者无权管理项目。”。我正在使用的服务帐户具有“项目所有者”角色,我不知道如何赋予它更多权限......
我正在使用的代码:
def initial_enterprise_user(request):
enterprise_token = request.GET.get('enterpriseToken')
usr = request.user
scopes = ['https://www.googleapis.com/auth/androidmanagement']
credentials = ServiceAccountCredentials.from_json_keyfile_name(settings.SERVICE_ACCOUNT, scopes=scopes)
if enterprise_token is None:
androidmanagement = build('androidmanagement', 'v1', credentials=credentials)
resp = androidmanagement.signupUrls().create(projectId=settings.ANDROID_MGMT_PROJECTID).execute()
if resp.status_code == 200:
usr.signup_url_name = resp.json()['name']
usr.save()
return render(request, 'initial_login.html', {'response_url': resp.json()['url']})
else:
return HttpResponse('Failed to get signup url')
else:
# handle token present
Run Code Online (Sandbox Code Playgroud) 我正在使用ExoPlayer在线服务器播放视频。因此,为了更好地为重播视频保存更多的互联网或数据,我只是将所有视频缓存到Cache directory. 但问题的话说,过时 constructor 的SimpleCache。
看我的代码:
private var sDownloadCache: SimpleCache? = null
fun getInstance(mContext: Context): SimpleCache {
val cacheEvictor = LeastRecentlyUsedCacheEvictor((100 * 1024 * 1024).toLong())
if (sDownloadCache == null)
sDownloadCache = SimpleCache(File(mContext.getCacheDir(), "media"),
cacheEvictor)
return sDownloadCache!!
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,编译器只是警告我构造函数 SimpleCache(File!, CacheEvictor!) 已被弃用。在 Java 中已弃用。所以,在那之后我试图在文件中找到方法,现在SimpleCache.java有一种使用方法SimpleCache是..
SimpleCache(File cacheDir, CacheEvictor evictor, DatabaseProvider databaseProvider)
Run Code Online (Sandbox Code Playgroud)
它对我来说是新的。所以,我的问题是如何使用这个新的构造函数而不是旧的不推荐使用的构造函数?有办法通过DatabaseProvider吗?如果是,那么如何或从什么?
我正在使用ExoPlayer库:
implementation 'com.google.android.exoplayer:exoplayer:2.10.1'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.10.1'
Run Code Online (Sandbox Code Playgroud)
并且因为这个版本提供了易于创建ExoPlayerFactory instance和build ProgressiveMediaSource.
fish_vi_mode我最近通过添加到我的配置中启用了 Vi 模式。由于我这样做了Ctrl+F不再可以完成建议,因此我必须使用右箭头。
forward-char无论启用或未启用,键绑定都是相同的fish_vi_mode。根据fish_config,它们是:
forward-char Right Arrow
forward-char Right Arrow
forward-char CTRL - f
Run Code Online (Sandbox Code Playgroud)
Ctrl为什么+不能与启用F一起使用fish_vi_mode?
我刚开始学习Android App开发.我有Android Studio 1.4.在我的布局文件夹中,我有两个XML文件(content_main.xml和activity_main.xml).我使用在线教程来学习,但他们只activity_main.xml在其中.所以我想知道的是应该在这些相应文件中使用的功能是什么.我可以使用activity_main.xml,只是让对方?反之亦然.
我必须捕捉用户的输入才能将快捷方式发送到我的 WPF 应用程序。
我在互联网上发现我必须做这样的事情:
按下一个键时捕捉:
void keyDown(object sender, KeyEventArgs e) {
if ((Keyboard.Modifiers & Modifiers.Shift) == Modifiers.Shift)
{
KeyPressed.SetShift(true);
}
if ( Key.Shift != e.Key && Key.LeftAlt != e.Key && ....)
{
KeyPressed.SetKey(e.Key);
}
Run Code Online (Sandbox Code Playgroud)
其中 KeyPressed 是一个带有静态布尔变量的类,用于捕获 if ?Shift, AltorCtrl和另一个键被按下(在子句中使用AltandCtrl而不是)。第二个是捕捉一个不同于, , Control 的键作为快捷键。例如,对于快捷方式+我们有:?ShiftififAlt?ShiftAltC
其中最后一个元素的类型为System.Window.Input.Key。
当一个键被释放时捕捉:
void keyUp(object sender, KeyEventArgs e) { …Run Code Online (Sandbox Code Playgroud) 有没有办法强制 TextInputLayout 错误消息采用单行?
我尝试将app:errorTextAppearance="@style/error_appearance"包含以下内容的 error_appearance 样式放置在 TextInputLayout 上:
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
<item name="android:inputType">text</item>
Run Code Online (Sandbox Code Playgroud)
它不起作用。然而,改变颜色是有效的。我不明白,mErrorView 只是一个 TextView,它应该可以工作。
因此,我正在使用来自GNU屏幕的tmux。Vim是我的首选编辑。通常,我发现使用Ctrl+ Z怀疑Vim进入我的外壳很有用。我很容易在屏幕上做到这一点。在这里,我的前缀键反弹到Ctrl+ Z,因此按Ctrl+ Z+会Z向Vim发送一个SIGSTOP,并且我在外壳中。一个简单的“ fg”会让我跳回原处,而无需离开屏幕。
现在,在tmux中,这对我不起作用。我尝试了默认的Ctrl+ B前缀,重新绑定到Ctrl+ Z并取消绑定tmux中的z“ toggle panel zoom”选项,以防发生冲突。唯一有效的方法是单击Prefix-Ctrl-Z将SIGSTOP发送到tmux,将其挂起,但我不希望这样做。我希望SIGSTOP转到Vim。
我在Debian Jessie上使用i3作为我的窗口管理器,但是我找不到任何冲突的键绑定,因此我对如何使它起作用的建议持开放态度。
谢谢。
使用 pyArrow 将 pandas.DF 转换为镶木地板时出现此错误:
ArrowInvalid('Error converting from Python objects to Int64: Got Python object of type str but can only handle these types: integer
Run Code Online (Sandbox Code Playgroud)
为了找出问题所在的列,我在 for 循环中创建了一个新的 df,首先使用第一列,然后为每个循环添加另一列。我意识到错误出现在dtype: object以 0 开头的列中,我想这就是为什么 pyArrow 想要将该列转换为int但失败的原因,因为其他值是UUID
我正在尝试传递一个架构:(不确定这是否是要走的路)
table = pa.Table.from_pandas(df, schema=schema, preserve_index=False)
Run Code Online (Sandbox Code Playgroud)
其中架构是: df.dtypes
我制作了一个谷歌云函数,在其中我发送了一封电子邮件,其中包含我从另一个地方收到的一些变量。我正在使用mailgun.js并且我正在尝试使用我已经在 mailgun 中创建的模板发送电子邮件。问题是我找不到替换模板中占位符变量的方法。
这是代码:
mg.messages.create('domain', {
from: 'email',
to: [email],
subject: 'subject',
template: 'template',
// How to replace the template variables???
})
.then(res => console.log('Resolved >>>>> ', res))
.catch(err => console.log('MAILGUN ERROR >>>> ', err))
Run Code Online (Sandbox Code Playgroud)
该mailgun文档这样说:
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'alice@example.com',
subject: 'Hello',
template: 'template.test',
h:X-Mailgun-Variables: '{"title": "API Documentation", "body": "Sending messages with templates"}' // Notice this
};
Run Code Online (Sandbox Code Playgroud)
据我所知,不能将 " h:X-Mailgun-Variables"写为任何对象中的键。
有人知道我需要把它放在哪里或如何放吗?
我认为它应该作为标题发送,但mailgun/mailgun-js和highcaffeinated/mailgun-js 都没有指定如何传递标题。
在Raspberry Pi上安装Android Things后,时间不正确.我的时区是GMT + 2,使用date +%Z我看到RPi的时区是GMT.我该如何设置时区?