小编Pau*_*sma的帖子

在Android 4.4.2上以编程方式切换移动数据

我一直使用此代码以编程方式启用移动数据:

ConnectivityManager conman = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
@SuppressWarnings("rawtypes")
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
@SuppressWarnings("rawtypes")
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
@SuppressWarnings("unchecked")
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, true);
Run Code Online (Sandbox Code Playgroud)

这很好用,除了现在Android 4.4.2,我得到这个例外:

java.lang.NoSuchMethodException: setMobileDataEnabled [boolean]
    at  java.lang.Class.getConstructorOrMethod(Class.java:472)
    at java.lang.Class.getDeclaredMethod(Class.java:640)
    at com.test.auto3gPro.ClasseConnessione.settaConnessione(ClasseConnessione.java:48)
    at com.test.auto3gPro.receiver.ScreenBroadcastReceiver.onReceive(ScreenBroadcastReceiver.java:108)
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5081)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?

android android-4.4-kitkat

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

Gradle在清单合并"targetApi"时失败

我的项目在清单中包含活动声明,使用该tools:targetApi属性忽略某些警告.特别:

    <activity
        android:name=".activities.ProtocolActivity"
        android:label="@string/title_activity_protocols"
        android:parentActivityName=".activities.InformationActivity"
        tools:targetApi="jelly_bean">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".activities.InformationActivity" />
    </activity>
Run Code Online (Sandbox Code Playgroud)

但是,例如在切换分支之后,我得到以下编译错误:

错误:/home/paul/git/ally-v2-app/app/src/main/AndroidManifest.xml:67:9-80:20:错误:指令'targetApi'无效,有效指令为:REMOVE,REPLACE,STRICT
...
错误:java.lang.IllegalArgumentException:没有枚举常量com.android.manifmerger.AttributeOperationType.TARGETAPI

我正在使用以下内容:

  • Gradle 2.10
  • Gradle插件2.0.0-beta6
  • Android Studio 2.0 beta 6
  • 在Ubuntu 15.10机器和Windows 10机器上都有

似乎我可以通过清除缓存并重新启动Android Studio,或删除属性,构建,然后再次添加它来使事情再次起作用.

android-studio android-gradle-plugin

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

ADT重新安装后,Eclipse中的调试选项不可用

为了解决Eclipse中不再自动构建项目的明显问题,我通过Eclipse重新安装了Android Developer Toolkit(v15).

在此之后,一切似乎都在起作用(断点等),除了调试透视图中的停止按钮始终被禁用,包括工具栏中的"恢复","暂停","终止"和"断开连接"按钮.

在此输入图像描述

此外,断点未被确认,并且在调试会话正在进行时更改代码时出现的弹出窗口中,我不再具有"终止"选项,只有"断开连接".

有人遇到过这种情况么?我正在使用T-Mobile G2作为我的设备.

编辑:我现在已经在一台新机器上完全重新安装了Eclipse和ADT,并且仍然缺少'stop'选项.我想知道这是否在v15中删除了?

eclipse debugging android

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

以编程方式禁用Gboard上的自动建议

我正在尝试以编程方式禁用setInputType()使用的建议InputType TYPE_TEXT_FLAG_NO_SUGGESTIONS.

虽然这适用于大多数键盘,但在使用"Gboard"键盘时这不起作用; 即使使用此输入类型,也会始终显示建议.问题是用户可以选择是否想要输入字段的建议,而不管EditText指定的输入类型.

如何抑制所有键盘的建议,包括Gboard?

android gboard

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

g ++卷曲引号在控制台和"问题"列表中显示不正确

最近,我从Visual Studio切换到Eclipse CDT.我已经很好地设置它,以便我的Cygwin安装中的G ++编译器可以无需ado地定位和编译我的代码.

然而,有一点轻微的不满.每次G ++报告警告或错误时,单个引号都会引用并分别显示.这似乎是一个字符编码问题; G ++或Cygwin正在吐出一个CDT或Eclipse不喜欢的字符编码.‘’

这只是我能找到的相关Google结果,但是LANG在Eclipse的首选项中设置C++环境变量C.UTF-8或者en_US.UTF-8没有效果.

从Cygwin运行C++直接显示单引号.有没有办法完全禁用这些?我可以设置一些环境变量或我可以传递的参数吗?

在图像中

Eclipse在各个地方展示了象形文字:

Eclipse的问题屏幕 Eclipse的控制台屏幕

Cygwin显示正确的符号(忽略致命错误):

Cywgin揭示了这个符号

cygwin g++ eclipse-cdt utf-8 character-encoding

7
推荐指数
2
解决办法
3322
查看次数

如何访问com.android.internal.telephony.CallManager?

我试图CallManagercom.android.internal.telephony包中访问类对象.

这是我的代码:

ClassLoader classLoader = TestActivity.class.getClassLoader();
final ClassLoader classLoader = this.getClass().getClassLoader();
try {
    final Class<?> classCallManager =
        classLoader.loadClass("com.android.internal.telephony.CallManager");
    Log.i("TestActivity", classCallManager);
} catch (final ClassNotFoundException e) {
    Log.e("TestActivity", e);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是扔了一个ClassNotFoundException.同样的方法允许我访问PhoneFactory,但显然我不允许访问CallManager.

如果我能够上课,那么我想继续使用该课程,如下所示:

Method method_getInstance;
method_getInstance = classCallManager.getDeclaredMethod("getInstance");
method_getInstance.setAccessible(true);
Object callManagerInstance = method_getInstance.invoke(null);
Run Code Online (Sandbox Code Playgroud)

谁可以帮我这个事?

在此先感谢,
Harsha C.

java android telephony

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

查找与DOM窗口关联的选项卡

我在Firefox扩展程序TryAgain中添加了一些新功能,用于捕获HTTP错误代码(例如500)并在一段时间后自动重试加载页面.

捕获代码非常有效,我正在尝试计算重试总次数,并使用Session Store将其存储在选项卡中.不幸的是,现在我正在获取对DOM窗口的引用(通过interfaceRequestor.getInterface(Components.interfaces.nsIDOMWindow)),但是我需要一个对tab的引用,这是一个nsIDOMNode根据setTabValue()上的nsISessionStore文档.

我到目前为止(我已经剪断了这个例子中的实际重试):

// This function implements the nsIObserverService interface and observes
// the status of all HTTP channels
observe : function(aSubject, aTopic, aData) {
    var httpChannel = aSubject
            .QueryInterface(Components.interfaces.nsIHttpChannel);
    if (httpChannel.responseStatus == 500) {
        var domWindow;
        try {
            var notificationCallbacks;
            if (httpChannel.notificationCallbacks) {
                notificationCallbacks = httpChannel.notificationCallbacks;
            } else {
                notificationCallbacks = aSubject.loadGroup
                        .notificationCallbacks;
            }
            var interfaceRequestor = notificationCallbacks
                    .QueryInterface(Components.interfaces
                        .nsIInterfaceRequestor);
            domWindow = interfaceRequestor
                    .getInterface(Components.interfaces.nsIDOMWindow);
        } catch (e) { …
Run Code Online (Sandbox Code Playgroud)

javascript mozilla firefox-addon

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

检测"仅使用2G网络"设置

有没有办法让Android的移动网络设置的价值为"仅使用2G网络"?

正在开发的应用程序测量某个位置的互联网速度,但为了使其相关,它必须知道用户是否故意将移动互联网限制为2G.

我已经看过ConnectivityManager,但它只提供有关后台数据设置或所有网络的信息.通过他们迭代表明,尽管已启用该设置,HSPA和UMTS返回trueisAvailable():

for (NetworkInfo netInfo : cm.getAllNetworkInfo()) {
    Log.i(TAG, netInfo.getSubtypeName() + ": " + netInfo.isAvailable());
}
Run Code Online (Sandbox Code Playgroud)

我在这一切中发现的唯一提示是,netInfo.getReason()当启用该设置时,在HSPA和UMTS上返回"connectionDisabled".问题是,当禁用该设置时,这些网络类型根本不一定出现在列表中.对于我来说,使用HSPA和UMTS上的字符串比较来表示"connectionDisabled"似乎并不合适.

解决这个问题的正确方法是什么?

android connectivity

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

使用`mailto:`方案通过意图发送电子邮件附件

我正在使用此代码附加文件:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SENDTO);
String uriText;
Uri file = Uri.fromFile(new File(path));
uriText = "mailto:" + 
              "?subject=the subject" + 
              "&body=the body of the message"+
              "&attachment="+file;
uriText = uriText.replace(" ", "%20");
Uri uri = Uri.parse(uriText);
emailIntent.setData(uri);
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
Run Code Online (Sandbox Code Playgroud)

(注意,path就像"/sdcard/test.jpg"之类的东西,我ACTION_SENDTO之所以使用,是因为我只想在选择器中看到电子邮件应用程序.)

意图将提供电子邮件应用程序列表,但附件不会出现在电子邮件或Gmail中.如何显示附件?

email gmail android

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

在Android 4.3上运行应用程序的持续通知

自升级到Android 4.3以来,我的应用程序正在显示持久系统通知:

[我的应用程序]正在运行;  触摸以获取更多信息或停止应用

它写道:

[我的应用程序]正在运行
Touch以获取更多信息或停止应用程序

它为什么存在,我能做些什么呢?

android android-notifications android-4.3-jelly-bean

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