小编Ash*_*awy的帖子

Android:Facebook SDK 4.x中的共享对话框类是什么

我正在使用下面的代码打开Facebook页面URL的Facebook共享对话框.

问题是,当我通过Facebook应用程序查看我墙上的共享帖子时,我发现没有共享页面封面的帖子.

如果我通过我的墙上的Facebook应用程序共享同一页面,我会找到带有共享页面封面的帖子(当然这更酷).

下面的代码中是否缺少参数?

我正在使用Facebook SDK 4.1.2

    FacebookDialog shareDialog = new ShareDialog(mMainActivity);
    if (ShareDialog.canShow(ShareLinkContent.class))
    {
        ShareLinkContent linkContent = new ShareLinkContent.Builder()
                .setContentUrl(Uri.parse(aFacebookPageURL))
                .build();


        shareDialog.show(linkContent);
    }
Run Code Online (Sandbox Code Playgroud)

编辑1:

使用.setImageUrl(Uri.parse(aPageCoverURL))

您可以看到上半部分(通过Facebook移动应用程序共享)和下半部分(通过我的应用程序共享)之间的差异.

在此输入图像描述

编辑2:如何使用以下代码共享Facebook页面?下面的代码不起作用,没有出现共享对话框,我不知道是否有缺少参数或者此代码不是为了共享页面,但我正在尝试.

    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("og:type", "page")
            .putString("og:title", aTitle)
            .putString("og:url", aURL)
            .build();

    // Create an action
    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
            .setActionType(null)
            .putObject("page", object)
            .build();

    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setPreviewPropertyName("page")
            .setAction(action)
            .build();

    ShareDialog.show(mMainActivity, content);
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api

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

Android:Facebook总是显示您已经授权应用程序对话框

我正在使用Facebook SDK 4.1.2并在Android 4.4.2上进行测试 - 知道我已经从我的手机上卸载了Facebook应用程序用于测试目的,这意味着登录和授权我的应用程序是通过FB SDK提供的webview.

每次清除内存时,我都会在对话框中收到此消息"您已经授权{Application Name}"

如何避免此消息反复出现会破坏用户体验?

明知并根据下面的代码,每次我清楚当应用程序启动,这会导致在我的代码运行下面的2行,我相信这是负责该消息的移动存储AccessToken.getCurrentAccessToken()返回null.

        List<String> PUBLIC_PROFILE_PERMISSION = Arrays.asList("public_profile");
        LoginManager.getInstance().logInWithReadPermissions(this, PUBLIC_PROFILE_PERMISSION); //Log in to FB
Run Code Online (Sandbox Code Playgroud)

我登录代码流程,如果可以改进的话请转发:

AccessToken mAccessToken;
CallbackManager callbackManager;
AccessTokenTracker accessTokenTracker;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    FacebookSdk.sdkInitialize(this);
    callbackManager = CallbackManager.Factory.create();

    updateWithToken(AccessToken.getCurrentAccessToken());

    accessTokenTracker = new AccessTokenTracker()
    {
        @Override
        protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken newAccessToken)
        {
            updateWithToken(newAccessToken);
        }
    };
} 
Run Code Online (Sandbox Code Playgroud)

// updateWithToken(...)函数

private void updateWithToken(AccessToken currentAccessToken) {

    if (currentAccessToken != null)
    {
        mAccessToken = currentAccessToken;
        AccessToken.setCurrentAccessToken(currentAccessToken);
    }
    else
    {
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api

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

活动未延伸至横向切口下方

在我的活动中,我使用以下代码打开/关闭全屏。我所说的全屏是指隐藏/显示状态栏。该问题发生在具有切口(有摄像头的地方)且状态栏可见且处于横向状态的设备上。当状态栏隐藏或/和处于纵向时它会延伸。

    if(aStatus){ // Hide
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCREEN);

    } else {

        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
Run Code Online (Sandbox Code Playgroud)

如图所示,左侧的白色区域应被覆盖。

https://i.stack.imgur.com/7va88.png

  compileSdkVersion 29
  buildToolsVersion '29.0.3'

  minSdkVersion 21
  targetSdkVersion 29
Run Code Online (Sandbox Code Playgroud)

所选解决方案将获得 50 积分奖励。谢谢你!

android android-layout display-cutouts android-cutout

3
推荐指数
1
解决办法
473
查看次数

Android:将WeakReference作为参数传递

我在我的(Obj_A)中使用WeakReference for ImageView,并将此ImageView WeakReference传递给另一个将其分配给ImageView变量的对象(Obj_B)(但也不是WeakReference),因此接收器ImageView变量将具有WeakReference的本质?

我希望我能够正确地塑造我的问题,我希望你理解我的意思.

java android

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

Android:如何更改操作栏背景颜色

我使用Android Studio创建了一个项目,其中包含使用ListView和导航抽屉模板的活动,我的目标是API 14+,我正在测试Galaxy Note 3 Kitkat - 下面代码的结果是"Nothing"动作栏颜色是黑色(非常深灰色),不是我想要的蓝色.

在build.gradle文件中

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'}
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest.xml中

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
Run Code Online (Sandbox Code Playgroud)

在Styles.xml(我有AppTheme)

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:activatedBackgroundIndicator">@drawable/drawer_list_selector</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/blue_action_bar_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在blue_action_bar_color.xml中

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/action_bar"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

在colors.xml中

<color name="action_bar">#3b5b98</color>
Run Code Online (Sandbox Code Playgroud)

那我在这里错过了什么?

EDIT1:

import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
Run Code Online (Sandbox Code Playgroud)

EDIT2:

我不能用

<style name="AppTheme" parent="android:Theme.Holo.Light">
Run Code Online (Sandbox Code Playgroud)

当我的应用程序崩溃时出现错误消息

 Caused by: java.lang.IllegalStateException: You need to use …
Run Code Online (Sandbox Code Playgroud)

android

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

Mapbox GL JS 在图层中的特定特征上设置 Paint 属性

我使用 Mapbox Studio 作为映射和样式的基础,然后将 HTML 用于其他地图功能。

其中一项功能是在悬停或鼠标进入时更改图标不透明度。当您直接在 HTML 中创建它时,我已经检查了其他示例和所有其他参考功能。我设法改变了不透明度,但仅限于整个图层。

我可以以某种方式使用 e.features[0] 命令行将更改仅应用于一个功能而不是整个图层吗?

我使用此代码更改整个图层“图标”的不透明度(图层包含 5 个带有文本的图标):

    // Change the cursor to a default and change opacity when the it enters a feature in the 'Icons' layer.
map.on('mouseenter', 'Icons', function() {
    map.getCanvas().style.cursor = 'default';
    var feature = e.features[0];
    map.setPaintProperty('Icons', 'icon-opacity', 0.5);
});

// Change it back to a pointer and reset opacity when it leaves.
map.on('mouseleave', 'Icons', function() {
    map.getCanvas().style.cursor = '',
    map.setPaintProperty('Icons', 'icon-opacity', 1);
});
Run Code Online (Sandbox Code Playgroud)

谢谢!!!

mouseover mapbox mapbox-gl-js mapbox-studio

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

我的AlarmManager立即触发警报

虽然这个问题在SO上一遍又一遍地重复,但是没有解决方案正常工作,在下面的代码中,它应该在启动我的活动10秒后第一次触发,但它会立即启动.我正在使用FLAG_UPDATE_CURRENT,所以没有过去的时间立即开火,因为我没有按特定的小时/分钟/秒设置它.你能不能把我的注意力集中在我所缺少的东西上.

我正在测试Android 5.0 Targeting API 4.0+

  • compileSdkVersion 23
  • minSdkVersion 16
  • targetSdkVersion 23

    Intent myIntent = new Intent(this, check.class);
    PendingIntent pi = PendingIntent.getBroadcast(this, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    
    Run Code Online (Sandbox Code Playgroud)

    am.setRepeating(AlarmManager.RTC,10000,(AlarmManager.INTERVAL_DAY/8),pi);

这是我在AndroidManifest.xml中的check.class

    <receiver
        android:name=".Check"
        android:exported="false" />
Run Code Online (Sandbox Code Playgroud)

android alarmmanager

-3
推荐指数
1
解决办法
404
查看次数