当我浏览互联网上的一些帖子,了解更多关于签署Android应用程序的帖子时,我发布了如何签署应用程序的帖子,以及有关如果丢失了密钥库文件或密码的内容.
我在这里要问的问题是,我从未创建过密钥库,或者它的别名或密码,所以我怎么能忘记它呢?
我知道对于Android我们使用密码android,所以,如果密码是默认的android怎么会忘记它?(我确信必须有其他方法来创建新的密钥库).
最后,如果android是默认密码,那么默认别名是什么?
所以,每个人都知道我们使一个类扩展CordovaPlugin并覆盖它 execute(),然后在JS和本机Java(用于Android)之间创建一个桥梁.我们进一步使用PluginResult将结果返回给JS.
因此,当JS向Java插件发出请求时,所有这些都会发生.我的问题是,如何异步地将结果发送回JS(以及HTML)?
我不知道异步这个词是不是就在这里.问题是我想把一些东西送回JS(比如,当wifi变为启用/禁用时).
我已经研究过这个,但没有任何适合我的情况.
我试过的是 -
WiFi监听WifiManager事件Toast.
WiFi时间CallbackContext,并使用callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, "Wifi
Connected"))Toast和发送结果 与不同的消息断开连接.MyPlugin.java
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.PluginResult;
import org.json.JSONArray;
...
public class MyPlugin extends CordovaPlugin {
private WifiReceiver wifiBroadcastReceiver = null;
private CallbackContext callbackContext = null;
...
public MyPlugin() {
wifiBroadcastReceiver = new WifiReceiver();
...
}
...
public boolean execute(String action, …Run Code Online (Sandbox Code Playgroud) 我有3个片段A,B,CI写了一段代码来替换它们并维护backstack:
public void addFragment(Fragment fragmentToAdd, String fragmentTag) {
FragmentManager supportFragmentManager = getSupportFragmentManager();
Fragment activeFragment = getActiveFragment();
FragmentTransaction fragmentTransaction = supportFragmentManager
.beginTransaction();
if (null != activeFragment) {
fragmentTransaction.hide(activeFragment);
}
fragmentTransaction.replace(R.id.layout_child_activity, fragmentToAdd,
fragmentTag);
if (supportFragmentManager.getBackStackEntryCount() > 1) {
supportFragmentManager.popBackStack();
}
fragmentTransaction.addToBackStack(fragmentTag);
fragmentTransaction.commit();
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中
if (supportFragmentManager.getBackStackEntryCount() > 1) {
supportFragmentManager.popBackStack();
}
Run Code Online (Sandbox Code Playgroud)
如果堆栈长度大于1,我使用pop来获取最新的片段.现在由于这个,当长度大于1时,它会一次又一次地调用onCreate视图.喜欢 :
为什么我会遇到这种行为?当我删除斜体代码时,它没有发生.
android fragment android-fragments back-stack fragmentmanager
我在特定时间设置闹钟,但每次打开应用程序时它都会打开,这是我使用的代码:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0010000,intent,0);
Calendar time = Calendar.getInstance();
time.set(Calendar.HOUR, 5);
time.set(Calendar.MINUTE, 59);
time.set(Calendar.SECOND, 0);
alarmManager.set(AlarmManager.RTC,time.getTimeInMillis(),pendingIntent);
Run Code Online (Sandbox Code Playgroud) 我正在开发一款游戏,用户需要点击ImageView中的图像来旋转它.在每个拍子图像上顺时针旋转90度.但是图像需要时间从旧位置旋转到新位置.这妨碍了游戏体验.我使用了以下内容:
protected void onCreate(Bundle savedInstanceState)
{
...
...
imgview = (ImageView)findViewById(R.id.imageView1);
imgview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap myImg = getBitmapFromDrawable(imgview.getDrawable());
Bitmap rotated = Bitmap.createBitmap(myImg,0,0,myImg.getWidth(),myImg.getHeight(),matrix,true);
imgview.setImageBitmap(rotated);
}
});
Run Code Online (Sandbox Code Playgroud)
我想知道有没有其他方法旋转图像 而不会产生任何旋转延迟.
我在Android Studio中使用Robolectric 3.0 RC3进行单元测试.我ResourceNotFoundException每次运行测试时都会得到一个.请帮我解决这个问题.
的build.gradle
dependencies {
testCompile 'junit:junit:4.12'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
testCompile 'org.mockito:mockito-core:1.9.5'
testCompile 'org.robolectric:robolectric:3.0-rc3'
compile 'com.ibm.icu:icu4j:53.1'
}
Run Code Online (Sandbox Code Playgroud)
测试类
@Before
public void setUp() throws Exception {
activity = Robolectric.buildActivity(MainActivity.class).create().get();
}
@Test
public void pressingTheButtonShouldStartTheListActivity() throws Exception {
//Something to test
}
Run Code Online (Sandbox Code Playgroud)
所以,每当Robolectric.buildActivity()我得到了Resources$NotFoundException.资源#0x7f040016指向R.layout.activity_main(xml).跟随ID堆栈跟踪 -
android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f040016
at org.robolectric.shadows.ShadowResources.checkResName(ShadowResources.java:343)
at org.robolectric.shadows.ShadowResources.resolveResName(ShadowResources.java:338)
at org.robolectric.shadows.ShadowResources.loadXmlResourceParser(ShadowResources.java:429)
at android.content.res.Resources.loadXmlResourceParser(Resources.java)
at android.content.res.Resources.getLayout(Resources.java:852)
at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
at …Run Code Online (Sandbox Code Playgroud) 我知道有办法通过检查类似的响应,找出WiFi网络是否是一个强大的门户网站"http://clients3.google.com/generate_204".
但我的问题有些不同.我们都知道,在Android上,当我们连接到WiFi网络的连接周期经历了许多在课堂上提到的状态NetworkInfo.DetailedState,像AUTHENTICATING,OBTAINING_IPADDR,VERIFYING_POOR_LINK等等.另外,美国的一个是CAPTIVE_PORTAL_CHECK和android系统检查是否网络,被连接是否被俘.对于这个Android,使用CaptivePortalTracker#isCaptivePortal(InetAddress服务器),结果是boolean.因此,我们确信Android知道连接是否受限制(俘虏)
所以,我的问题是Android系统是否提供了一些回调或某种状态,通过这种状态,我们可以了解网络是强制网络门户而无需手动检查?由于Android系统已经检查了网络的强制门户,我们是否需要再次做同样的事情?
PS我只针对API 19(KitKat 4.4.2).
我尝试在IBM工作灯中制作一个cordova插件.
使用Javascript:
HelloWorld = {
sayHello: function (success, fail, resultType) {
Cordova.exec(
success,
fail,
"HelloWorld",
"HelloWorld",
[resultType]
);
}
};
function callFunction() {
HelloWorld.sayHello(basarili, basarisiz, "sinan");
}
Run Code Online (Sandbox Code Playgroud)
Java的:
package com.Cordova1;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import android.util.Log;
public class HelloWorld extends CordovaPlugin {
public boolean execute(String arg0, JSONArray arg1, String arg2) {
Log.d("HelloPlugin", "Hello, this is a native function called from PhoneGap/Cordova!");
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用callFunction时,我看到失败函数有效.此外,我在日志窗口中看不到任何HelloPlugin消息.我能做什么 ?
当我通过Android Studio安装应用程序时,我的应用程序运行正常,但是当我尝试使用adb安装应用程序时,我收到INSTALL_FAILED_DEXOPT错误.我尝试了很多东西,比如清洁,无效等,但一切都失败了.
这只发生在操作系统版本为5.1.1的Fire TV Sticks上,反之在Fire TV上,无论操作系统如何(即使在5.1.1 Fire TV上),该应用程序也能正常运行.
Gradle版本:4.4(回到4.1没有帮助)
Android插件版本:3.1.2(回到3.0.1没有帮助)
构建工具版本:27.0.3
minSdkVersion:21
compileSdkVersion:26
targetSdkVersion:26
我假设这是我在安装Live App Testing应用程序时未在棒棒糖设备上安装我的构建的原因.
请让我知道如何解决此错误.
附加Logcat输出:https://gist.github.com/anas-incedo/64992269a1734061a2f739a5887e809c
android ×9
cordova ×2
java ×2
alarmmanager ×1
back-stack ×1
bitmap ×1
build.gradle ×1
date ×1
fragment ×1
imageview ×1
junit4 ×1
keytool ×1
matrix ×1
networking ×1
plugins ×1
robolectric ×1
rotation ×1
unit-testing ×1
video ×1
vlc ×1