小编Mat*_*ini的帖子

更新android时区数据

我在我的设备上运行Android 4.4.3,当然它已经过时了,我正在尝试更新/ system/usr/share/zoneinfo中tzdata.但是,立即替换文件不会更新时区.

由于ICU保留了自己的时区数据副本,我们也必须更换它(根据谷歌AOSP团队).更新后的数据文件更新ICU更新仿生

但是,当我构建并替换icu4c库(libicui18n.so和libicuuc.so)并将icudt51l.dat替换为icudt53l.dat时,系统无法初始化ICU.

我已经尝试解压缩icudt53l.dat并在旧的icudt51l.dat中推送其*.res文件但是也失败了因为ICUPKG工具在打包之前检查res文件的校验和.

我按照XDA链接更新了tzdata,但是这种方法失败了,因为他们使用tzdata 创建了zoneinfo.dat,zoneinfo.idx,zoneinfo.version文件.但是系统在/ system/usr/share/zoneinfo中查找tzdata本身

我不是时区或ICU专家,如果我朝错误的方向寻求帮助,请指点我.

timezone android kernel icu android-4.4-kitkat

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

Android - 没有截屏当前屏幕

代码适用于第一个屏幕截图并保持相同的屏幕截图,无论移动到另一个视图.

如何获取当前截图?

public void saveBitmap(Bitmap bitmap) {

    File imagePath = new File(Environment.getExternalStorageDirectory() + "/" + new SimpleDateFormat("yyyyMMddhhmmss'.jpg'").format(new Date()) );
    FileOutputStream fos =null;
    try {
        fos = new FileOutputStream(imagePath);
        bitmap.compress(CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        Log.e("GREC", e.getMessage(), e);
    } catch (IOException e) {
        Log.e("GREC", e.getMessage(), e);
    }
}
Run Code Online (Sandbox Code Playgroud)

点击信息:

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.iSave:
          Bitmap bitmap = null;
          bitmap = takeScreenshot();
          saveBitmap(bitmap);
        break;
    } 
}
Run Code Online (Sandbox Code Playgroud)

这里:

public Bitmap takeScreenshot() {
   View …
Run Code Online (Sandbox Code Playgroud)

android

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

保存WebView的状态并重新加载位置

我知道有很多关于这个的问题,但它们似乎都已经老了,不再工作了 - 至少对我而言.我试图在用户退出或重新加载应用程序后保存webview的位置.我知道这段代码可以用来保存和加载Webview:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    myWebview.saveState(outState);
}
Run Code Online (Sandbox Code Playgroud)

并在onCreate:

if (savedInstanceState != null) {
    myWebview.restoreState(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)

但是,在Android Developer Webview页面中,它说明了以下内容saveState:

"保存onSaveInstanceState(Bundle)中使用的WebView的状态.请注意,此方法不再存储此WebView的显示数据.如果从未调用restoreState(Bundle),之前的行为可能会泄漏文件."

链接 - https://developer.android.com/reference/android/webkit/WebView.html

如果我错了,这是支持工作,可能是我的另一个函数的实现,它保存了WebView中显示的页面的微调器选择,并以与上面显示的非常相似的方式加载.也许使用两者都不允许加载WebView的位置而只加载页面?以下是我目前要保存的内容,当用户重新加载应用程序时,将哪个HTML页面加载到WebView中.

我的onCreate:

if (savedInstanceState != null){
    mySpinner.setSelection(prefs.getInt("spinnerSelection", 0));
}
Run Code Online (Sandbox Code Playgroud)

我的onSaveInstanceState:

@Override
public void onSaveInstanceState(Bundle savedInstanceState){

    SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getBaseContext());
    SharedPreferences.Editor editor = getPrefs.edit();

    values = Integer.parseInt(getPrefs.getString("pref_Sections", "1"));
    switch (values) {
        case 1:
            int selectedPosition1 = mySpinner.getSelectedItemPosition();
            editor.putInt("spinnerSelection1", selectedPosition1);
            editor.commit();
            break;
        case 2:
            int selectedPosition2 = …
Run Code Online (Sandbox Code Playgroud)

java android savestate webview

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

尝试为N手机创建Whatsapps快速回复

如果您点击通知上的快速回复按钮,我正在尝试创建一个小窗口.在WhatsApp中,它打开了一个半屏幕窗口.目前我正在做以下事情:

我打开了一个叫做的活动NotificationActivity.在AndroidManifest.xml我注册的活动中

<activity
    android:name=".activity.NotificationActivity"
    android:theme="@style/Theme.AppCompat.Light.Dialog.custom"
    android:label="@string/title_activity_notification"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustResize|stateHidden" />
Run Code Online (Sandbox Code Playgroud)

这是风格:

<style name="Theme.AppCompat.Light.Dialog.custom">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

现在,当应用程序完全关闭(关闭然后刷掉)时,它可以完美地运行.

但是,如果应用程序只是最小化,当有人点击回复按钮时,它会打开应用程序,然后将NotificationActivity粘贴到它上面.如何阻止应用程序在后台打开并且仅打开半屏通知活动.

非常感谢

编辑:我在想,也许xml文件是相关的?

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="300dp"
    android:layout_marginTop="15dp"
    android:background="@color/white"
    android:orientation="vertical"
    android:paddingTop="12dp"
    android:weightSum="20">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="vertical">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/lvChat"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="10"
            android:background="@android:color/transparent"
            android:cacheColorHint="@android:color/transparent"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:listSelector="@android:color/transparent"
            android:scrollbars="none"
            android:stackFromBottom="false"
            android:transcriptMode="alwaysScroll"/>

        <LinearLayout
            android:id="@+id/chatFooter"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#ECEFF1"
            android:orientation="horizontal">

            <LinearLayout
                android:id="@+id/sendLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center_vertical"
                android:paddingBottom="@dimen/scale_5dp"
                android:paddingTop="@dimen/scale_5dp"
                android:weightSum="2">

                <LinearLayout
                    android:layout_width='0dp'
                    android:layout_height="wrap_content"
                    android:layout_weight="1.8">

                    <com.heyjude.heyjudeapp.customview.EditRobotoRegular
                        android:id="@+id/editChatMsg"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@drawable/linear_back"
                        android:hint="Type your message..."
                        android:imeOptions="actionSend" …
Run Code Online (Sandbox Code Playgroud)

notifications android

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

如何禁用Google Assist API(现在点击)

Google最近发布了具有Now on Tap的Android Marshmallow,可以扫描应用内容并向用户提供其他信息.

不幸的是,我们的应用程序的信息看起来并不十分相关和谷歌无视我们的内部设置数据onProvideContentAssist()onProvideAssistData().

这些规格看起来相当高,并且还包含" 可以建议 "和" 附加信息 "等词语,因此Google似乎正式允许自己忽略开发人员提供的数据.

所以我们决定禁用Now on Tap,但似乎并不是非常简单.根据上面提供的文件,我们应该FLAG_SECURE在这种情况下使用.但随后用户无法捕获屏幕截图,Google Now on Tap开始以下面面向用户的消息来指责我们的应用:

结果不可用
此应用已阻止Now on Tap

在此输入图像描述

但似乎Opera在某种程度上轻轻地阻止了Now on Tap的私人标签.它为他们显示了更多app友好的消息:

什么都没有

在此输入图像描述

Opera如何阻止现在点击?

有没有人知道如何阻止Google Assist API(现在点击)而不会对我们的应用程序负责?

android google-now android-6.0-marshmallow google-assist-api

9
推荐指数
2
解决办法
2536
查看次数

电话状态监听器多次调用

嗨,我想将传入的数字记录到数据库.我正在使用广播接收器来收听电话和使用电话状态监听器.这是我的代码

ThePhoneStateListener.java

package com.example.netlogger.Receiver;
import android.content.Context;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;

public class ThePhoneStateListener extends PhoneStateListener {
    Context context;
    public ThePhoneStateListener(Context context) {
        this.context = context;
    }
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        super.onCallStateChanged(state, incomingNumber);
        if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
            Log.d("TAGG", "Insert: " + incomingNumber);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

CallActionReceiver.java

package com.example.netlogger.Receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;

public class CallActionsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context arg0, Intent arg1) { …
Run Code Online (Sandbox Code Playgroud)

android

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

SoapFault - faultcode:'ns1:unexpected-error'android SOAP call

我试图使用一个WSDL文件调用SOAP Web服务.

我在其中添加了所有必需的参数.但我收到的错误如下:

SoapFault - faultcode: 'ns1:unexpected-error' faultstring: 'Fault occurred while processing.' faultactor: 'null' detail: null in android
Run Code Online (Sandbox Code Playgroud)

这是我的代码示例:

class RegisterMember extends AsyncTask<Void, Void, Void> {
    String SOAP_ACTION =  "";
    String METHOD_NAME = "registerMember";
    String NAMESPACE = "http://XXXXX.XX"; 
    String URL="http://XXXX.XX?WSDL";

    SoapPrimitive result1;
    String str;
    @Override
    protected void onPreExecute() {
        mProgressDialog = new ProgressDialog(MainActivity.this);
        mProgressDialog.setMessage("Checking For Activation");
        mProgressDialog.show();
    }

    @Override
    protected Void doInBackground(Void... params) {
        try {
            StringBuffer sb;
            SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME);

            request.addProperty("name", "XXXX");
            request.addProperty("email", "XXXX@gmail.com");
            request.addProperty("username", "XXXXX");
            request.addProperty("password", "XXXX"); …
Run Code Online (Sandbox Code Playgroud)

android soap soapfault

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

禁用ViewPager分页的最佳方法

我正在开发一个有ViewPager菜单的应用程序.每个fragment有一堆的可以是孩子的意见ListView,ScrollView,LinearLayout,等...一本fragments有一个设置按钮,切换一个设置面板(LinearLayout带包装)ScrollView和一些LinearLayout(按钮),并SeekBar为孩子的.此设置面板使用向上或向下滑动动画(当被关闭时)动画,当它可见时我禁用ViewPager分页:

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (!pagingEnabled && event.getAction() == MotionEvent.ACTION_MOVE) {
        return true;
    }
    return super.onTouchEvent(event);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (!pagingEnabled && event.getAction() == MotionEvent.ACTION_MOVE) {
        return true;
    }
    return super.onInterceptTouchEvent(event);
}

public boolean isPagingEnabled() {
    return pagingEnabled;
}

public void setPagingEnabled(boolean pagingEnabled) {
    this.pagingEnabled = pagingEnabled; …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager scroll-paging

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

Android - 如何将颜色值设置为TRANSPARENT

如何让parseColor颜色值变为透明.

mPaint.setColor(Color.parseColor("#FFFF00"));
Run Code Online (Sandbox Code Playgroud)

感谢帮助

android

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

如何从CustomTabsClient获取Url更改

如何在页面更改时获取URL,使用CustomTabsClient

例如,WebView有一个方法:

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){}
Run Code Online (Sandbox Code Playgroud)

我需要一个类似的方法CustomTabs.

我找到了这个:

mClient.newSession(new CustomTabsCallback(){
    @Override
    public void onNavigationEvent(int navigationEvent, Bundle extras) {
        super.onNavigationEvent(navigationEvent, extras);
    }

    @Override
    public void extraCallback(String callbackName, Bundle args) {
        super.extraCallback(callbackName, args);
    }
});
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是我需要的.

android chrome-custom-tabs

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