我想访问getFilesDir()哪个是上下文方法.
有没有办法像访问外部存储一样访问它?
Environment.getExternalStorageDirectory();
意思是环境变量?
也许应用静态上下文?因为我想从非上下文类(相同的应用程序服务,但不是活动)调用它.
stopWriting = (Button) findViewById(R.id.save);
stopWriting.setOnClickListener(new OnClickListener() {
@SuppressLint("SdCardPath")
public void onClick(View v) {
// stop recording the sensor data
try {
myFile = new File("/sdcard/SensorData/" + txtData.getText() + ".txt");
myFile.createNewFile();
sData = new FileOutputStream(myFile);
myOutWriter = new OutputStreamWriter(sData);
myBufferedWriter = new BufferedWriter(myOutWriter);
myPrintWriter = new PrintWriter(myBufferedWriter);
//if(myFile != null )//stopFlag = mSensorManager.cancelTriggerSensor(null, null);
Toast.makeText(getBaseContext(), "Done", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
Run Code Online (Sandbox Code Playgroud)
我试图将陀螺仪数据保存到txt文件,但它不保存.如果有人发现问题,请帮我纠正.
简而言之,我无法让MediaRecorder#record在Android 7.1.1模拟器上运行,并且不明白为什么.以下是进一步的细节:
环境:操作系统:Mac OS X El Capitan版本10.11.6
IDE:AndroidStudio 2.2.3版
问题:我编写了一个示例应用程序来演示此问题.这个应用程序包含一个带有OnClickListener的按钮,它将初始化和配置MediaRecorder实例,准备并开始录制.在设置中启用RECORD_AUDIO权限后,以下代码在AVD管理器下载和使用的Android 7.0 API 24仿真器(x86_64图形:硬件)上正确运行,但在Android 7.1.1 API 25上产生以下错误(使用Google API) )仿真器(x86_64图形:硬件):
仅在Android 7.1.1 API上出错25 java.lang.RuntimeException:启动失败.在android.media.MediaRecorder.start(Native方法)
问题 有谁知道问题是什么?我的设置是否有问题,不适合Android 7.1.1?到目前为止,这已在2台Mac上复制.
码:
MainActivity.java:
package com.abstractx1.testrecord;
import android.media.MediaRecorder;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button recordButton = (Button) findViewById(R.id.recordButton);
recordButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String path = getFilesDir().getAbsolutePath() + "/" + "AudioRecording.3gp";
MediaRecorder …Run Code Online (Sandbox Code Playgroud) 我正在尝试在应用程序的内部存储中创建一个文件夹,以便我可以下载文件.但它似乎没有用.我一直在寻找一个小时和几小时的解决方案,但我找不到一个,它开始让我crzay.
这个代码来创建文件夹:
String intStorageDirectory = Environment.getDataDirectory().toString();
File folder = new File(intStorageDirectory, "testthreepdf");
folder.mkdirs();
Run Code Online (Sandbox Code Playgroud)
此代码始终返回"DOES NOT EXIST":
File f = new File(Environment.getDataDirectory() + "/testthreepdf");
if(f.exists())
{
Log.i("testApp", f.toString() + "EXISTS");
}
else {
Log.i("testApp", f.toString() + " DOES NOT EXIST");
}
Run Code Online (Sandbox Code Playgroud)
这些是android权限:
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>
Run Code Online (Sandbox Code Playgroud)
有人知道这段代码有什么问题吗?