我使用自定义相机应用程序,然后我打开这个应用程序工作正常,但我打开相机视图,并拍照得到错误在Android 4.4版本中失败的活页夹交易,但当我检查以下所有版本4.4以下工作正常.为什么android 4.4版本有问题?
我在下面的相机活动:
public class CameraActivity extends Activity {
Camera mCamera;
CameraPreview mCameraPreview;
protected static final int MEDIA_TYPE_IMAGE = 0;
static String FilePAth = "";
Button takePicture , btnGlr , btnCancelCamera;
static String base64string = "";
String ImageType;
final int RESULT_LOAD_IMAGE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.camera_preview);
mCamera = getCameraInstance();
mCameraPreview = new CameraPreview(CameraActivity.this, mCamera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(mCameraPreview);
takePicture = (Button) findViewById(R.id.btnTakePicture);
takePicture.setOnClickListener(new OnClickListener() {
@Override
public …Run Code Online (Sandbox Code Playgroud) 您好我已经在SDK 26之前在机器人上运行了我的本地通知
但是在Android O中我收到了以下警告,广播接收器没有被解雇.
W/BroadcastQueue: Background execution not allowed: receiving Intent { act=package.name.action.LOCAL_NOTIFICATION cat=[com.category.LocalNotification] flg=0x14 (has extras) } to package.name/com.category.localnotifications.LocalNotificationReceiver
Run Code Online (Sandbox Code Playgroud)
从我所看到的广播接收器在Android O中受到更多限制,但如果是这样,即使主要活动没有运行,我应该如何安排广播?
我应该使用服务而不是接收器吗?
这是AlarmManager启动代码:
public void Schedule(String aID, String aTitle, String aBody, int aNotificationCode, long aEpochTime)
{
Bundle lExtras = new Bundle();
lExtras.putInt("icon", f.getDefaultIcon());
lExtras.putString("title", aTitle);
lExtras.putString("message", aBody);
lExtras.putString("id", aID);
lExtras.putInt("requestcode", aNotificationCode);
Intent lIntent =
new Intent(LocalNotificationScheduler.ACTION_NAME)
.addCategory(NotificationsUtils.LocalNotifCategory)
.putExtras(lExtras);
PendingIntent lPendIntent = PendingIntent.getBroadcast(f.getApplicationContext(), aNotificationCode,
lIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager lAlarmMgr = (AlarmManager) f.getSystemService(Context.ALARM_SERVICE);
lAlarmMgr.set(AlarmManager.RTC, 1000, lPendIntent);
}
Run Code Online (Sandbox Code Playgroud)
这是接收者代码:
public class LocalNotificationReceiver …Run Code Online (Sandbox Code Playgroud) 我正在尝试遵循这个答案但是,它在模拟器和我的手机上都不起作用,所以我对模拟器日志和电话有疑问并重新启动以模拟和调试
我在底部有非常有趣的笔记,让我感到非常困惑
我正在使用 API 24 和像素 3 模拟器和真正的三星 8 手机
我做了典型的添加到清单
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)
和
<receiver android:name=".biz.alarm.BootupReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
但是我从来没有看到这个日志语句......
public class BootupReceiver extends BroadcastReceiver {
private final static String TAG = "BootupReceiver";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "booted. action="+action);
}
}
Run Code Online (Sandbox Code Playgroud)
对于模拟,我单击播放按钮并观看我的应用程序出现。然后我按住电源按钮,当我真的只想重新启动时,它只给我一个“关机”选项......奇怪,所以我关机了。这似乎完全退出了模拟,这样当我在 Android Studio 的模拟器上再次点击播放时,它就会记录
08/06 19:17:40: Launching 'app' on Pixel 3 API 24.
$ adb shell am start -n "app.mykeepintouch.kit/app.mykeepintouch.kit.MainActivity" -a android.intent.action.MAIN -c …Run Code Online (Sandbox Code Playgroud)