小编Ray*_*oix的帖子

如何使用android中的深层链接启动应用程序

我想使用自己的应用程序启动应用程序,但不是通过提供程序包名称,我想打开自定义URL.

我这样做是为了启动一个应用程序.

Intent intent = getPackageManager().getLaunchIntentForPackage(packageInfo.packageName);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

而不是包名称可以提供深层链接,例如:

"mobiledeeplinkingprojectdemo://product/123"
Run Code Online (Sandbox Code Playgroud)

参考

android deep-linking

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

错误:无法找到:com.google.guava:guava:18.0.+

我将此依赖项添加到gradle文件中

//这是由Google HTTP客户端库使用的.

compile(group: 'com.google.guava', name: 'guava', version: '18.0.+')
Run Code Online (Sandbox Code Playgroud)

我尝试同步Gradle文件,但它一直给我这个错误

错误:无法找到:com.google.guava:guava:18.0.+

android guava android-gradle-plugin

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

DbGeography和SRID 104001的EF错误

数据库表:

,[Location] GEOGRAPHY
Run Code Online (Sandbox Code Playgroud)

使用SRID 104001通过EF更新位置

item.Location = System.Data.Entity.Spatial.DbGeography.PointFromText($"Point({loc.Lng} {loc.Lat})", 104001);
Run Code Online (Sandbox Code Playgroud)

例外:

24204:空间参考标识符(SRID)无效。指定的SRID必须与sys.spatial_reference_systems目录视图中显示的支持的SRID之一匹配。

数据库检查:

SELECT * FROM sys.spatial_reference_systems WHERE spatial_reference_id = 104001

104001  Microsoft   104001  GEOGCS["Unit Sphere", DATUM["Unit Sphere", SPHEROID["Sphere", 1.0, 0.0]], PRIMEM["Greenwich",0.0], UNIT["Degree", 0.0174532925199433]]  radian  1
Run Code Online (Sandbox Code Playgroud)

使用方法:

.Net Framework 4.6.1;
Entity Framework 6.1.3;
Microsoft SQL Server 2014 (SP2-GDR) (KB3194714) - 12.0.5203.0 (X64)   Sep 23 2016 18:13:56   Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) ;
Database Compatibility level 120
Run Code Online (Sandbox Code Playgroud)

c# entity-framework srid

5
推荐指数
0
解决办法
359
查看次数

每个版本的Android深层链接

我有多个针对不同应用程序风格的深层链接方案.我有一个后端,每个应用程序发送一个不同的方案.如果所有这些都安装在同一设备上,则所有这些设备都能够解析发送的深层链接.因此,当安装所有三个并且调用app2的深层链接时.所有应用程序都可以捕获它,但只有app2可以在应用程序中正确处理它,并且应该是唯一可以捕获它的应用程序.

我的.gradle文件中定义的Flavors

productFlavors {
    app1{
        applicationId "com.apps.app1"
    }
    app2{
        applicationId "com.apps.app2"
    }
    app3{
        applicationId "com.apps.app3"
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用的intent过滤器来捕获清单中的深层链接.

<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:pathPrefix="/"
        android:scheme="app1" />
    <data
        android:pathPrefix="/"
        android:scheme="app2" />
    <data
        android:pathPrefix="/"
        android:scheme="app3" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

有没有办法让一个深层链接只能被一种味道捕捉?

android deep-linking

5
推荐指数
2
解决办法
1287
查看次数

Google Calendar API V3安卓 - 获取freeBusyRequest的全天活动

我正在尝试使用google-api-services-calendar:v3 for Android(使用Kotlin)获取我的Google组织内其他人的免费忙碌数据.对于有一定持续时间的事件,我的时间恰到好处.但是整天的活动都没有出现在名单上.关于此的文档几乎无处可寻,我在developers.google.com上找到的内容包含2013年已弃用的代码...

// ...
val busyTimesList = mutableListOf<AgendaPlotter.TimeSpan>()
    SessionService.sharedInstance.getGoogleAccount(activity)
        observeOn(Schedulers.io())
        .subscribe {
            mCredential!!.selectedAccount = it.account
            val request = FreeBusyRequest()

            val durationCal = Calendar.getInstance()
            durationCal.time = startDay.time
            Calendars.startOfDay(durationCal)
            request.timeMin = DateTime(durationCal.time)
            durationCal.add(Calendar.DATE, 1)
            request.timeMax = DateTime(durationCal.time)


            val requestItems = listOf(FreeBusyRequestItem().setId("email@from.colleague"))
            request.items = requestItems
            request.timeZone = TimeZone.getDefault().id

            val busyTimes: FreeBusyResponse
               try {
                    val query = mService!!.freebusy().query(request)
                    // Use partial GET to retrieve only needed fields.
                    query.fields = "calendars"
                    busyTimes = query.execute()
                    busyTimes.calendars.forEach {
                    it.toPair().second.busy.forEach { timeSpan ->
                        val busyTime = AgendaPlotter.TimeSpan() …
Run Code Online (Sandbox Code Playgroud)

android google-calendar-api kotlin

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

EditText 处理 28(P) 的颜色,以 29(Q) 作为目标 API

到目前为止,我一直在使用反射,因此更新了 editTexts 的选择句柄。在我更新到目标 api 29(Q) 之前,它一直工作正常。

似乎 Google 做了一些更新(或 Java,不完全确定),但我现在收到如下消息:

访问隐藏字段 Landroid/widget/Editor;->mDrawableForCursor:Landroid/graphics/drawable/Drawable; (暗灰名单,反射)

从好的方面来说,api 29(多年后)具有以编程方式设置手柄颜色的稳定方式。不幸的是,它并没有像我发现的那样向后兼容,而且它也破坏了 api 28。低于 api 28 的任何东西都可以通过反射正常工作。在我现在适用于除 api 28 之外的任何代码的代码下方

 /**
 * Sets the color for the cursor and handles on the {@link EditText editText}.
 *
 * @throws EditTextTintError if an error occurs while tinting the view.
 */
public void apply() throws EditTextTintError {
    try {
        // Get the editor
        Field field = TextView.class.getDeclaredField("mEditor");
        field.setAccessible(true);
        Object editor = field.get(editText);

        if (cursorColor != null) {
            editText.setHighlightColor(ColorUtils.setAlphaComponent(cursorColor, 40));

            // …
Run Code Online (Sandbox Code Playgroud)

customization android android-edittext programmatically

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