是否有 API 调用允许启用/禁用 Firefox 附加组件?
为了得到一个MediaControllerCompat实例中我使用getSupportMediaController()在FragmentActivity.但是这种方法已被弃用.我必须使用哪种方法代替此方法?
我正在使用反射调用一个超出我的Android应用程序的目标API级别的方法:
try {
Method m = Class.forName("android.content.Context")
.getDeclaredMethod("getExternalCacheDir");
Object result = m.invoke(this);
if (result instanceof File) {
Log.v("MyApp", "external cache: "
+ ((File) result).getAbsolutePath());
cacheDirectory = (File) result;
} else {
Log.v("MyApp", "non-file cache: " + result);
}
} catch (Exception e) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我可以通过Proguard毫无问题地优化它,但它警告我:
Note: com.example.MyApp accesses a declared method 'getExternalCacheDir()' dynamically
Maybe this is library method 'android.content.Context { java.io.File getExternalCacheDir(); }'
Maybe this is library method 'android.content.ContextWrapper { java.io.File getExternalCacheDir(); }'
Maybe this is library method …Run Code Online (Sandbox Code Playgroud) 我正在尝试/assets使用以下代码从Android 文件夹中读取位图:
AssetFileDescriptor fd = getAssets().openFd("pic1.jpg")
Bitmap bitmap = BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor());
Run Code Online (Sandbox Code Playgroud)
我得到的例外情况表明文件权限错误:
java.io.IOException: read failed: EBADF (Bad file number)
at libcore.io.IoBridge.read(IoBridge.java:432)
at java.io.FileInputStream.read(FileInputStream.java:179)
at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:168)
at java.io.BufferedInputStream.read(BufferedInputStream.java:309)
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587)
at android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:670)
at android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:688)
Run Code Online (Sandbox Code Playgroud)
尝试从输入流中读取它会产生类似的异常:
AssetFileDescriptor fd = getAssets().openFd("pic1.jpg");
FileInputStream is = fd.createInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
Run Code Online (Sandbox Code Playgroud)
例外:
java.io.IOException: lseek failed: EBADF (Bad file number)
Stack trace:
at java.io.FileInputStream.skip(FileInputStream.java:197)
at android.content.res.AssetFileDescriptor$AutoCloseInputStream.<init>(AssetFileDescriptor.java:173)
at android.content.res.AssetFileDescriptor.createInputStream(AssetFileDescriptor.java:138)
Run Code Online (Sandbox Code Playgroud)
直接从输入流中读取会产生另一个例外:
InputStream is = getAssets().open("pic1.jpg");
Bitmap bitmap = BitmapFactory.decodeStream(is);
Run Code Online (Sandbox Code Playgroud)
例外:
java.lang.NullPointerException: asset
at android.content.res.AssetManager.seekAsset(Native …Run Code Online (Sandbox Code Playgroud) 我不相信标准库提供了任何计算两个字符串之间距离的东西,我似乎无法在Boost StringAlgo中找到任何东西.那么,我可以使用其他任何库吗?
我对这个算法不太挑剔.Jaro-Winkler也很好,Levenshtein也是如此,我愿意接受建议,我不想编写某人已编码的内容.
当且仅当该文件不存在时,我想创建一个文件.
作为示例文件位置是指"C:\ user\Desktop\dir1\dir2\filename.txt"
if (!file.exists()) {
try {
file.createNewFile();
} catch(IOException ioe) {
ioe.printStackTrace();
return;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的代码失败,因为dir1和dir2不存在.
对于我的情况
如何干净地检查?
我想添加以下检查来处理这种情况:
if (!file.getParentFile().getParentFile().exists()) {
file.getParentFile().getParentFile().mkdirs();
}
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
if (!file.exists()) {
try {
file.createNewFile();
} catch(IOException ioe) {
ioe.printStackTrace();
return;
}
}
Run Code Online (Sandbox Code Playgroud)
或者有比这更明确的解决方案?
我将一些客户端生成的用户属性传递给Firebase Analytics,并在logcat中遇到以下消息:
W/FA:价值太长; 丢弃.值类型,名称,值长度:用户属性,comp0,37 D/FA:记录事件(FE):错误(_err),捆绑[{firebase_event_origin(_o)= auto,firebase_error_length(_el)= 37,firebase_error_value(_ev) = comp0,firebase_error(_err)= 7}]
我在Firebase Analytics错误代码页面中查找了错误代码7 ,虽然它显示代码意味着"用户属性值太长",但它没有指定最大长度是多少.
用户属性值的最大长度是多少?键名也有最大长度吗?
现在我有以下数组:
$test = array(
'allow' => array(
'access_level' => array(
'manager',
'admin',
),
),
),
Run Code Online (Sandbox Code Playgroud)
我正在做一个foreach循环:
foreach($test['allow'] as $key => $value) {
if(is_array($key)){
echo "Its an array within an array!";
}
}
Run Code Online (Sandbox Code Playgroud)
但关键不是数组.我怎么能弄清楚access_level是一个数组还是只指向一个值?
我的应用程序有9个补丁按钮,在Android 2.3中它们显示正常,但是当我在Android 4.0的设备中尝试按钮太高时,我需要它们在Android 2.3中.
他们wrap_content在布局中.
图像中的Android 2.3:http://picturepush.com/public/12502980
在图像的Android 4.0:http://picturepush.com/public/12502985
我9patch按钮:http://picturepush.com/public/12502990
有什么问题,我该如何解决?
我正在尝试在我的 android 应用程序上获取 GPS 坐标。
Criteria criteria = new Criteria();
criteria.setAltitudeRequired(false);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_HIGH);
LocationManager locationManager =
(LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Intent i = new Intent(context, IntentListener.class);
i.setAction(Actions.ACTION_UPDATE_LOCATION);
PendingIntent pi = PendingIntent.getBroadcast(
context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
String provider = locationManager.getBestProvider(criteria, true);
if (provider == null) return;
locationManager.requestLocationUpdates(provider, 90 * 1000, 30, pi);
Run Code Online (Sandbox Code Playgroud)
这是接收代码。
Intent service = new Intent(context, WorkerService.class);
service.setAction(Actions.ACTION_UPDATE_LOCATION);
Location location = (Location) intent.getExtras().get(
LocationManager.KEY_LOCATION_CHANGED);
if (location == null) { // <-- Always true
return;
}
service.putExtra("lat", location.getLatitude());
service.putExtra("lon", location.getLongitude()); …Run Code Online (Sandbox Code Playgroud)