我的代码中有一个文件名:
String NAME_OF_FILE="//sdcard//imageq.png";
FileInputStream fis =this.openFileInput(NAME_OF_FILE); // 2nd line
Run Code Online (Sandbox Code Playgroud)
我在第二行收到错误:
05-11 16:49:06.355:ERROR/AndroidRuntime(4570):引起:java.lang.IllegalArgumentException:文件//sdcard//imageq.png包含路径分隔符
我也试过这种格式:
String NAME_OF_FILE="/sdcard/imageq.png";
Run Code Online (Sandbox Code Playgroud) 通常我点击模拟器上的Wi-Fi设置屏幕Settings > Wireless controls > wifi settings.按下我创建的Wi-Fi按钮时,我需要从我的程序直接进入Wi-Fi设置屏幕.联系人,调用我们可以使用Intent.setData处理的日志(android.provider.contacts ...........).有没有办法从Android程序打开设置子菜单/菜单?
请给我建议或示例代码.
我必须创建一个库,我将在jar文件中导出到客户端.有没有办法用它中的资源创建一个jar?
谷歌adMob有这样一个jar,其中包括资源文件,如R $ layout.class. 这个页面描述了一些方法,但是我无法准确理解我应该如何使用上面的方法将库项目导入应用程序.
在git中设置项目很简单,所以即使是小脚本我也可以拥有单独的存储库.现在的问题是如何管理它们.
我使用这些存储库在多个地方工作.当我对某个存储库进行了更改后,我希望能够在其他位置更新存储库.
所以我有一个包含许多存储库的目录.
能够用一个命令完成这些操作会很高兴.
输出需要足够沉默才能真正注意到要做的事情.
我知道Java的泛型类型存在各种反直觉属性.这是我不理解的一个,我希望有人可以向我解释.为类或接口指定类型参数时,可以绑定它以使其必须实现多个接口public class Foo<T extends InterfaceA & InterfaceB>.但是,如果您要实例化实际对象,则此功能不再起作用.List<? extends InterfaceA>很好,但List<? extends InterfaceA & InterfaceB>无法编译.请考虑以下完整代码段:
import java.util.List;
public class Test {
static interface A {
public int getSomething();
}
static interface B {
public int getSomethingElse();
}
static class AandB implements A, B {
public int getSomething() { return 1; }
public int getSomethingElse() { return 2; }
}
// Notice the multiple bounds here. This works.
static class AandBList<T extends A & B> {
List<T> …Run Code Online (Sandbox Code Playgroud) 我正在做一些代码练习并应用合并数据框,同时这样做会收到用户警告
/usr/lib64/python2.7/site-packages/pandas/core/frame.py:6201:FutureWarning:排序,因为非连接轴未对齐.未来版本的pandas将更改为默认情况下不排序.要接受将来的行为,请传递'sort = True'.要保留当前行为并使警告静音,请传递sort = False
在这些代码行上:您能帮忙解决这个警告吗?
placement_video = [self.read_sql_vdx_summary, self.read_sql_video_km]
placement_video_summary = reduce(lambda left, right: pd.merge(left, right, on='PLACEMENT', sort=False), placement_video)
placement_by_video = placement_video_summary.loc[:, ["PLACEMENT", "PLACEMENT_NAME", "COST_TYPE", "PRODUCT",
"VIDEONAME", "VIEW0", "VIEW25", "VIEW50", "VIEW75",
"VIEW100",
"ENG0", "ENG25", "ENG50", "ENG75", "ENG100", "DPE0",
"DPE25",
"DPE50", "DPE75", "DPE100"]]
# print (placement_by_video)
placement_by_video["Placement# Name"] = placement_by_video[["PLACEMENT",
"PLACEMENT_NAME"]].apply(lambda x: ".".join(x),
axis=1)
placement_by_video_new = placement_by_video.loc[:,
["PLACEMENT", "Placement# Name", "COST_TYPE", "PRODUCT", "VIDEONAME",
"VIEW0", "VIEW25", "VIEW50", "VIEW75", "VIEW100",
"ENG0", "ENG25", "ENG50", "ENG75", "ENG100", "DPE0", "DPE25",
"DPE50", "DPE75", "DPE100"]]
placement_by_km_video …Run Code Online (Sandbox Code Playgroud) 我想在我的onReceive()方法中开始一个活动.
package com.splashscreenactivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SMSReceiver extends BroadcastReceiver {
public static String trigger_message = "";
@Override
public void onReceive(Context context, Intent intent) {
// ---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null) {
// ---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i = …Run Code Online (Sandbox Code Playgroud) 我在AndroidManifest中声明了一些接收器:
<!-- no warning -->
<receiver
android:name=".receivers.TriggerMonitoringBootReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<!-- no warning -->
<receiver
android:name=".receivers.ScanResultsReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.net.wifi.SCAN_RESULTS" />
</intent-filter>
</receiver>
<!-- warning : Exported receiver does not require permission-->
<receiver
android:name=".receivers.BatteryMonitoringReceiver"
android:enabled="false">
<intent-filter>
<action android:name="@string/intent_action_setup_alarm" />
<action android:name="@string/intent_action_cancel_alarm" />
<action android:name="@string/intent_action_monitor" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
第一个是为了接受一个BOOT_COMPLETED动作.第二个是接收android.net.wifi.SCAN_RESULTS.第三个是接收我广播的一些动作(intent_action_monitor)和AlarmManager(intent_action_setup_alarm等)广播的一些动作.
两个问题:
exported="false" 做的启动接收器,无线接收器,报警接收等?android:protectionLevel="signatureOrSystem"但文档建议不要使用此保护级别和自定义权限.那我该如何处理这个警告呢?将非常感谢链接到文档和/或一些代码.
android broadcastreceiver android-manifest android-permissions android-broadcastreceiver
我试过这个并从JAVA得到奇怪的行为,有人可以帮我解释一下吗?
boolean testNull(String... string) {
if(string == null) {
return true;
} else {
System.out.println(string.getClass());
return false;
}
}
boolean callTestNull(String s) {
return testNull(s);
}
Run Code Online (Sandbox Code Playgroud)
然后我有测试用例:
@Test
public void test_cases() {
assertTrue(instance.testNull(null)); // NULL
assertFalse(instance.testNull()); // NOT NULL
assertFalse(instance.callTestNull(null)); // NOT NULL
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,如果我打电话testNull()直接与参数null,我会true回来,但如果调用callTestNull()与null,它调用testNull(),它告诉我该参数不为空,但空数组.