小编jay*_*jay的帖子

标签更改监听器android

我的HomeActivity扩展了使用2个选项卡的AppCompatActivity.

public class HomeActivity extends AppCompatActivity {

    private SectionsPagerAdapter mSectionsPagerAdapter;
    private TabLayout tabLayout;
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        ...
        mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(mViewPager);
    }

    ...
Run Code Online (Sandbox Code Playgroud)

如何收听标签更改事件?如果我需要添加更多代码以便清楚,请告诉我.

android android-fragments android-tablayout

24
推荐指数
4
解决办法
2万
查看次数

Android和HDMI CEC

我使用Android版4.4.4的PlugPC(计算棒),将其连接到电视的HDMI端口,以控制电视上显示的内容.我的应用程序在启动时启动,控制屏幕.现在通过我的应用程序,我想控制电视音量和源切换(也许).我在这方面有以下问题:

  1. 有没有办法通过Android发送HDMI-CEC命令使用Java控制电视音量,打开/关闭等电视?

  2. Android提供的任何Java库或其他可用的Java库?

  3. 一个使用CEC的简单Java示例.

PS - 我理解(https://source.android.com/devices/tv/HDMI-CEC.html)中提出的理论,但对如何使用代码实现无能为力.请具体说明您对上述问题的回答.

android

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

Android中任何文件的上次访问时间

file.lastModified()返回上次修改日期.File似乎没有任何方法来获取lastAccessed日期.有没有办法以编程方式获取android中任何文件的最后访问日期/时间?

android

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

Android - 添加自定义尺寸的片段

目前,我正在使用以下代码添加片段.

private void addFragment(Fragment fragment, String fragmentName) {
    Log.i("Adder", "Adding fragment " + fragmentName);
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.fragment_container, fragment, fragmentName);
    fragmentTransaction.commit();
}
Run Code Online (Sandbox Code Playgroud)

以下代码用于调整添加的片段的大小.

private boolean readjustFragment(Fragment fragmentToBeAdjusted, FragmentCoordinates fragmentCoordinates) {
    if (fragmentToBeAdjusted != null) {
        View view = fragmentToBeAdjusted.getView();
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(fragmentCoordinates.getWidth(), fragmentCoordinates.getHeight());
        params.leftMargin = fragmentCoordinates.getX0();
        params.bottomMargin = fragmentCoordinates.getY0();
        view.setLayoutParams(params);
        view.requestLayout();
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但是,如何添加自定义尺寸(高度,宽度和边距)的片段,而不是添加然后调整大小?

android android-fragments

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

Facebook android sdk依赖冲突

我使用facebook-android-sdk:4.20.+com.android.support它们与错误信息冲突的库:

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.2.0, 25.0.0. Examples include com.android.support:animated-vector-drawable:25.2.0 and com.android.support:customtabs:25.0.0 less... (?F1) 
There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion.)
Run Code Online (Sandbox Code Playgroud)

以下是我的依赖项. …

android facebook gradle android-facebook android-gradle-plugin

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

USB权限没有提示

我的应用程序中有2个活动.说FirstActivitySecondActivity. FirstActivity是MAIN和LAUNCHER活动.SecondActivity使用USB设备.我希望USB权限提示在应用程序的生命周期内只出现一次.

如果只有一个Activity,则清单中的以下行解决了我的目的:

<activity android:name=".FirstActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
    </intent-filter>

    <meta-data
        android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
        android:resource="@xml/usb_device_filter" />
</activity>
Run Code Online (Sandbox Code Playgroud)

这是在做以下事情:

  1. 每当usb设备(在xml中提到)连接时启动FirstActivity是app尚未打开.
  2. 提示usb设备权限仅出现一次.

如何修改此项以实现以下目标:

  1. 如果SecondActivity已经运行并且连接了新的USB设备,我必须能够在不重新启动应用程序的情况下使用该设备.所以我写了一个广播接收器,如下所示:

    public class TriggerReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) { 
            read connected usb devices and register serial port call listener back.
        }
    }    
    
    Run Code Online (Sandbox Code Playgroud)

但是FirstActivity当usb设备在SecondActivity运行时连接时,问题再次重新启动.我该如何避免这种情况?

如果需要,将添加更多信息.感谢任何帮助.

android android-usb

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

isAttachedToWindow()替代API级别<19

我想videoView.isAttachedToWindow()在我的片段中使用调用来验证videoview是否已初始化正常并且可以调用.

但是这个调用需要api级别19(当前min是14).videoView.isAttachedToWindow()API级别14及以上的最佳替代方案是什么?

编辑:我的视频视频播放通过Android盒子的HDMI输入流式传输的视频.在某些具有OS 4.0.4的硬件中,视频有时会出现抖动.

java android android-layout android-view android-windowmanager

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

FCM - 永远不会调用onTokenRefresh()

我已按照Firebase云消息传递中提到的设置过程进行操作.但不知怎的onTokenRefresh永远不会被调用.

以下是这方面的变化:

应用 build.gradle:

dependencies {
    ...
    compile 'com.google.firebase:firebase-messaging:9.4.0'
}

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

项目 build.gradle:

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    classpath 'com.google.gms:google-services:3.0.0'
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中

<application
    ...
    <service
        android:name="com.blynq.app.services.MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>

    <service
        android:name="com.blynq.app.services.MyFirebaseInstanceIDService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>

</application>


public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {
        String token = FirebaseInstanceId.getInstance().getToken();
        Log.i("FCM", "Token refreshed - " + token);
        registerTokenWithServer(token);
    }
}
Run Code Online (Sandbox Code Playgroud)

记录状态I/FirebaseInitProvider: FirebaseApp initialization successful,但不执行onTokenRefresh().

我肯定错过了什么,但无法理解在哪里.

编辑:只有模拟器发生,Android设备与上述设置工作正常.

android firebase firebase-cloud-messaging

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

从android框中的HDMI输入读取原始流

我正在为Android盒子(不是Android TV)编写一个具有HDMI输入端口的应用程序.如何从HDMI输入读取原始视频流并在android videoView中显示?

我使用的Android机箱有Amlogic处理器.它使用API​​级别19(Android 4.4)及更高版本.

android

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

Android 静态变量丢失

我正在使用一个只有静态变量的类来存储所有常量和运行时属性。但是,最近我看到引用这些变量时的实例,结果为空。

以下是我的类定义:

public class PlayerProperties {

    // Runtime but constant properties
    public static int screenHeight;
    public static int screenWidth;
    public static String androidId;

    // Static properties

    // Urls
    public static final String baseUrl = "http://www.blynq.in/api/player/";

    public static final String registerUrlAppender = "activationKeyValid";
    public static final String schedulesUrlAppender = "getScreenData";
    public static final String updateUrlAppender = "updateAvailable";
    public static final String tokenRegisterUrl = "fcmRegister";
    public static final String mediaStatsUrl = "mediaStats";
    public static final String logsUrl = "logs";
    public static final …
Run Code Online (Sandbox Code Playgroud)

java android garbage-collection

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

Log4j使用gradle为Android配置

我想使用log4j将日志写入sdcard.如何使用gradle专门配置log4j?

我见过的很多线程要求下载并添加jar作为库,我找不到使用gradle配置log4j的好帖子.

android log4j gradle

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